2012-12-20 16 views
3

我是Websockets的新手。在閱讀有關websockets時,我無法找到我的疑惑的答案。我想如果有人澄清它。Websocket是否只將數據廣播到所有連接的客戶端而不是發送到特定的客戶端?

  1. 的WebSocket是否只廣播的數據連接,而不是發送給特定的客戶端的所有客戶端?無論如何(主要是聊天應用程序),我試着將數據發送給所有客戶端。有沒有可能改變這一點?

  2. 它是如何工作在位於NAT(路由器後面)客戶端。

  3. 由於客戶端服務器的連接將始終保持開放,怎麼會影響到大量連接的服務器的性能?

  4. 因爲我想我所有的客戶獲得實時更新,需要我所有的客戶端連接服務器,所以我應該怎麼handele客戶端連接限制?

注意: - 我的客戶端不是Web瀏覽器,而是桌面應用程序。

+0

可以告訴我更多關於websockets的信息我可以在哪裏學習? 我知道這是一個在服務器上託管的系統,可以讓你連接到沒有http請求的客戶端。但我不知道這個廣播的事情。你從哪裏學到的。 –

回答

3
  1. 不,websocket不僅用於廣播。您向特定的客戶端發送消息,當您廣播時只需向所有連接的客戶端發送相同的消息,但可以向不同的客戶端發送不同的消息,例如遊戲會話。

  2. 的客戶端連接到服務器,初始化連接,所以NAT是沒有問題的。

  3. 這是很好的使用可伸縮的服務器,例如一個事件驅動的服務器(例如Node.js),它不爲每個連接使用單獨的線程,或者具有輕量級進程的erlang服務器(遊戲服務器的不錯選擇)。

  4. 如果您使用的是良好的服務器操作系統(例如Linux),這應該不會成爲問題,但如果您的服務器使用桌面版Windows(例如可能限制爲200個連接),則該限制可能會受到限制。

+0

你會在node.js,phpwebsocket和java websocket之間爲服務器建議什麼。 – ganesh

+0

@ganesh這三個都是有效的選項。使用任何你更舒適的應用程序,並以其中最適合您的應用程序爲準。 – Philipp

+0

@ganesh我已經把一個[實時網絡技術指南(http://www.leggetter.co.uk/real-time-web-technologies-guide)在一起,該看你的選擇時,可以對你有用的技術。 – leggetter

相關問題