2013-03-21 39 views
1

我想使用Vert.X構建一個由SockJS支持的私人聊天應用程序。我很快遇到了SockJS的侷限性,因爲它是簡單的API,複用似乎不是答案(請參閱:https://groups.google.com/d/topic/sockjs/cO7lnH07RCE/discussion)。SockJS EventBus Bridge是建立私人聊天的正確工具嗎?

EventBus Bridge會是正確的工具嗎?每個客戶端綁定到一個唯一的地址,VertX服務器可以對它們做出響應,或者如果不被識別則默認忽略它們?

這是EventBus Bridge的意圖嗎?

SockJSBridge啓動後可以允許更改規則嗎?

也可以將隨機標記(UUID?)添加到入站規則「匹配」以模擬會話的工作方式。

這是合理的嗎?或者這已被廣泛使用?

回答

2

EventBusBridge允許客戶端(通過SockJS的瀏覽器)與EventBus上的其他訂戶交談。這意味着您可以直接使用服務器端服務或其他客戶端發送消息。

您不能動態更改網橋的允許/防火牆規則。但使用正則表達式和使用UUID,您應該可以輕鬆實現聊天。我舉個例子:

服務器收聽地址chat-server。網橋中的出站設置設置爲{ "address_re" : "chat-clients\..*" }。每個客戶端在chat-clients.<some_UUID_for_this_client>上註冊一個處理程序,並通知服務器將發往客戶端的消息發送到註冊地址。

我們寫了一個chat module in Scala,你可以用它作爲參考。