2013-08-31 530 views
4

讓我們考慮一下使用WebSockets的應用程序,它可以分成幾個獨立的模塊。一個最簡單的例子就是聊天應用程序,其中客戶端應用程序可以一次加入/連接到多個聊天室(每個聊天室彼此獨立)。什麼是組織連接,同時開發這樣的應用程序在客戶端的每個聊天室WebSocket應用程序體系結構

  1. 打開新的WebSocket連接的首選形式給出。這樣你就可以在服務器端有多個javax.websocket.server.ServerEndpoint實例,每個實例都有不同的url。因此,服務器和客戶端應用程序將會稍微複雜一點,並且可以分爲功能性(可重用)塊。缺點是客戶必須一次保留多個打開的連接。在我的情況下,我們一次只能談十個最大值。

  2. 打開一個websocket連接並將消息複用到下面的聊天室,即消息中具有聊天室id的字段。實施起來並不是什麼大事,會讓應用程序變得更復雜一些,但它值得嗎?

什麼是首選方法?

回答

2

這並不容易回答,因爲它取決於您的具體設置。然而,這是我的想法:

我認爲選項2是更好的方法,因爲開放連接對於許多web服務器來說確實是一個有限的資源。請記住,websocket連接與常規http請求不同,並且長時間保持打開狀態。多路複用協議的額外複雜性並不是我想的問題。我所知道的websocket通信協議的所有實現都使用後一種方法,但我必須承認並不知道很多例子。