首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ZeroMq实现异步即时消息聊天

如何用ZeroMq实现异步即时消息聊天
EN

Stack Overflow用户
提问于 2013-08-05 00:10:10
回答 1查看 3.8K关注 0票数 2

方法

我正在使用ZeroMq构建一个异步IM/chat应用程序,作为一个学习练习,使用以下方法。

服务器使用两个与lbbroker.java类似的路由器套接字,从incoming读取和写入outgoing,同时操作信封以传递给预定的接收方。

客户端使用socket.setIdentity()设置唯一标识,并使用拉和推套接字代替REQ/REP异步发送和接收聊天消息。我已经构建并测试了代码,一切看起来都很好。

问题

  • 在路由器上使用PUSH/PULL是一种有效的方法吗?

  • 为什么聊天客户端在下线时会变得不可及,然后再重新连接?

萨利变得无法联系,如果她断开连接,然后重新连接,她不能再接收聊天信息。在调试服务器之后,我确认它确实是用正确的信封发送消息给sally。我还使用outgoing.setRouterMandatory(true)来确保服务器不会删除不可寻址的消息,但不会引发错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-23 16:23:44

经过进一步的研究,虽然推挽套接字与路由器一起工作,但根据ZeroMq规范,它们不是有效的套接字组合。

客户端的经销商套接字是一种更好的方法。经销商支持双向消息传输,基本上做推拉的工作,但只有一个套接字。

我开始了一个讨论这个问题的文章,它包含了一些使用经销商的基于代理模式的示例代码。

https://github.com/zeromq/jeromq/issues/81

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18048951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档