我想使用Vert.X构建一个由SockJS提供私聊的应用。我很快遇到了SockJS的限制,因为它简单的API和多路复用似乎不是答案(参见:https://groups.google.com/d/topic/sockjs/cO7lnH07RCE/discussion)。
EventBus Bridge是否是正确的工具?每个客户端绑定到一个唯一的地址,VertX服务器可以响应它们,或者如果不识别则默认忽略它们?
这是EventBus Bridge的意图吗?
一旦启动SockJSBridge,可以允许更改规则吗?
随机化令牌(UUID?)也可以添加到入站规则“匹配”中,以模拟会话的工作方式。
这合理吗?或者这是否被广泛使用?
答案 0 :(得分:2)
EventBusBridge允许客户端(通过SockJS的浏览器)与EventBus上的其他订户进行通信。这意味着您可以直接使用服务器端服务或其他客户端发送消息。
您无法动态更改网桥的许可/防火墙规则。但是使用正则表达式和使用UUID,您应该能够非常轻松地实现聊天。让我举个例子:
服务器侦听地址chat-server
。网桥中的出站设置设置为{ "address_re" : "chat-clients\..*" }
。每个客户端在chat-clients.<some_UUID_for_this_client>
上注册一个处理程序,并告诉服务器将发往客户端的消息发送到注册的地址。
我们写了chat module in Scala,您可以将其作为参考。