2014-04-08 22 views
1

我使用websockets製作了一個正在運行的聊天應用程序。我有一個VPS,我想要託管此應用程序。該應用程序運行良好,但如果我可以連接兩個隨機用戶(現在它就像1個聊天室,可以在其中聊天)。你如何跟蹤誰在線?我應該每隔x秒檢查一次AJAX嗎? SetTimeOut會超載我的服務器,恐怕... Omegle如何做到這一點?我正在考慮解決方案,但AJAX解決方案是我能想到的唯一一個,但我不想讓服務器過載...如何使用Websockets連接隨機用戶?

回答

0

您無法直接使用WebSocket連接兩個用戶,但可以使用WebRTC數據通道:http://www.html5rocks.com/en/tutorials/webrtc/datachannels/

使用WebSockets,都需要連接到服務器。然後,您的應用程序應向服務器發送消息,指出您正在與哪個聊天室聊天,或向哪個聊天用戶發送消息。當用戶斷開連接時,服務器應通知用戶使用公用聊天室或打開的私人聊天,以斷開該用戶的連接。

服務器是一個負責廣播的用戶的信息的權利的地方,跟蹤哪些用戶在聊天室,等等

因此,而不是隻發送短信,發送JSON更多的數據對象,如:

{ cls: "join", room: "whatever", nick: "vtortola" } 
{ message: "hi", cls: "msg", room: "whatever" } 

而且服務器應該將事件發送到客戶,以及告知用戶加入/離開,也是消息。

我寫了一個very simple chat,但也許事件處理可能會給你的想法。

0

如果您正在構建一個真正的聊天系統,您應該使用聊天協議,例如XMPP(還有其他協議)。這爲您提供了更深入的聊天語義,使用低級WebSocket(這是一種傳輸協議),並不是一個真正的應用程序級協議。如果您想通過網絡聊天,那麼您需要XMPP使用HTTP(使用基於HTTP的BOSH)或WebSocket(通過WebSocket搜索XMPP)。