gpt4 book ai didi

sockets - ZeroMQ PUB/SUB DEALER/ROUTER混合模式

转载 作者:行者123 更新时间:2023-12-03 11:53:59 24 4
gpt4 key购买 nike

我需要执行以下操作:

  • 连接到SAME远程端口
  • 的多个客户端
  • 每个客户端打开2个不同的套接字,一个是 PUB/SUB
    另一个是 ROUTER/DEALER (服务器偶尔可以向客户端发送心跳,不同的服务器相关信息)。

  • 无论是否可以在ZeroMQ中完成,我都完全迷失了。
    显然,如果我可以使用2个远程端口,那不是问题,但是我失败了
    了解是否可以通过某种信封来完成我的设置
    在ZeroMQ中使用。
    能做到吗
    谢谢,

    更新:

    为了澄清我希望实现的目标。
  • 多个客户端可以与服务器
  • 进行通信
  • 客户端主要基于请求-响应操作(在一个套接字上)
  • 客户端创建一个 session 套接字,这意味着每当此
    创建了套接字类型,需要创建一个单独的工作线程
    从那时起,客户端上与此工作线程进行通信
    关于请求处理服务器线程不得阻塞
    处理一个客户端的请求时其他客户端的连接
  • 但是,客户端可能偶尔会收到来自工作线程的有关工作人员心跳的消息。

  • Update2 :

    其实我可以解决它。我做了什么:
  • 可以明显识别客户,因此使用ROUTER/DEALER,例如客户
    确实是经销商,因此提供了异步处理
  • 客户端将消息发送到路由器所在的唯一本地端口
  • 路由器查看消息(以懒惰的海盗为例),检查是否有新的客户端进入;如果是,它将卸载到单独的线程,并将单独的线程与内部“ inproc: ”套接字
  • 连接
  • 路由器显然会轮询前端和所有连接的客户端的后端,并来回发送消息。

  • 让我感到烦恼的是,如果我将其与“常规”套接字解决方案进行比较,那就太过分了,在该解决方案中,我可以直接将客户端与工作线程连接起来(例如,工作线程可以直接从客户端打开的套接字中接收数据),因此我可以完全省去路由。
    我想念什么?

    最佳答案

    最近在ZeroMQ邮件列表上进行了有关在一个TCP套接字上复用多个服务的讨论。提议的解决方案实质上就是您实现的解决方案。

    讨论中还提到了Malamute及其代理,该代理本质上提供了一个基于ZeroMQ的框架,该框架还提供了您需要的功能。我没有时间亲自研究它,但是看起来很有希望。

    关于sockets - ZeroMQ PUB/SUB DEALER/ROUTER混合模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35528407/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com