哪个websocket服务器实现可以和rabbitmq结合?

Posted

技术标签:

【中文标题】哪个websocket服务器实现可以和rabbitmq结合?【英文标题】:Which websocket server implementation can be combined with rabbitmq? 【发布时间】:2013-01-31 21:43:40 【问题描述】:

您好,我们正计划将 websocket 服务器实现集成为我们的 RabbitMQ 系统的前端。目前我们正在运行一些使用 RabbitMQ 服务器的基于 Java/Groovy/Grails 的应用程序。

我们想要一个简单的 websocket 服务器实现来处理连接等,并将请求传递给我们的 RabbitMQ 层。

客户端(硬件设备)将连接到处理对 RabbitMQ 的请求的 websocket 层。其他一些进程负责处理请求并在需要时将数据放回队列中,以便 RabbitMQ 能够通过 websocket 将数据传递回客户端。

我有点迷失在 websockets 的土地上,所以我想知道其他人会建议使用什么。

【问题讨论】:

【参考方案1】:

您可以将rabbitmq 本身与webstomp 插件和sock.js 一起用于Web 前端。您可以直接公开它,也可以通过 haproxy 之类的方式公开它。

http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/

在 3.x 版本中,它现在默认包含在内,只需启用插​​件即可。

【讨论】:

【参考方案2】:

对于 Java,有两种选择:

气氛 Vert.x 播放 2.0 Netty 直接

给猫剥皮的方法有很多。如果您已经在使用 Grails,Atmosphere 可能会让您更进一步。您必须编写一个自定义的Broadcaster IIRC,RabbitMQ 没有一个,但您可以复制现有的一个。

此外,对于 RabbitMQ 或任何队列,您必须决定是为每个用户(使用 websocket 的浏览器)创建队列,还是基于一些哈希进行聚合,然后在内部调度(即制作一张巨大的地图邮箱)。 Akka 将是映射到邮箱的不错选择。

【讨论】:

以上是关于哪个websocket服务器实现可以和rabbitmq结合?的主要内容,如果未能解决你的问题,请参考以下文章

php+websocket 实现聊天室

如果 Apache 已经使用了 80,我应该在哪个端口上运行 WebSockets 服务器?

Rabbit MQ

介绍一款自己实现的rabbit轻量级组件和使用方法

MATLAB可以与websocket交谈吗?

WebSocket(基于TCP的全双工通信协议)