您好,我们计划将websocket服务器实现作为我们的RabbitMQ系统的前端。目前,我们正在运行一些使用RabbitMQ服务器的基于Java/Groovy/Grails的应用程序。
我们希望有一个简单的 websocket 服务器实现来处理连接等,并将请求传递给我们的 RabbitMQ 层。
客户端(硬件设备)将连接到处理对 RabbitMQ 的请求的 websocket 层。其他一些进程承担处理请求的工作,并在需要时将数据放回队列中,以便 RabbitMQ 能够通过 websockets 将数据传递回客户端。
我在 websockets 的土地上有点迷茫,所以我想知道其他人会建议使用什么。
您可以将 rabbitmq 本身与 webstomp 插件和 sock.js 用于 Web 前端。您可以直接或通过类似haproxy之类的方式公开它。
http://www.rabbitmq.com/blog/2012/05/14/introducing-rabbitmq-web-stomp/
在 3.x 版本中,现在默认包含它,只需启用插件即可。
对于Java,有几种选择:
- 大气层
- Vert.x
- 玩2.0
- 内蒂直接
方法可以给猫剥皮。如果你已经在使用Grails,Atmosphere 可能会让你走得更远。您必须编写一个自定义Broadcaster
IIRC,没有用于RabbitMQ的自定义,但您可以复制现有的一个。
此外,对于 RabbitMQ 或任何队列,您将不得不决定是为每个用户(使用 websocket 的浏览器)制作队列,还是要根据一些哈希进行聚合,然后在内部调度(即制作一个巨大的邮箱地图)。Akka 将是映射到邮箱的不错选择。