我使用websockets製作了一個正在運行的聊天應用程序。我有一個VPS,我想要託管此應用程序。該應用程序運行良好,但如果我可以連接兩個隨機用戶(現在它就像1個聊天室,可以在其中聊天)。你如何跟蹤誰在線?我應該每隔x秒檢查一次AJAX嗎? SetTimeOut會超載我的服務器,恐怕... Omegle如何做到這一點?我正在考慮解決方案,但AJAX解決方案是我能想到的唯一一個,但我不想讓服務器過載...如何使用Websockets連接隨機用戶?
1
A
回答
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)。
相關問題
- 1. 使用Socket.io連接到隨機用戶
- 2. 如何僅使用websockets將java客戶端連接到SignalR Hub?
- 3. 客戶端能否僅使用websockets直接連接到SignalR?
- 4. 如何隨機使用接口方法?
- 5. 使用javascript通過WebSockets連接到Rserve
- 6. 如何獲得內部連接使用MySQL中的隨機行?
- 7. 如何繪製連接的隨機線?
- 8. 如何使用WebSockets
- 9. 如何使用websockets連接兩個node.js服務器?
- 10. 如何使用Ruby連接到多個WebSockets?
- 11. 如何使用隨機庫?
- 12. 如何隨機使用python
- 13. 如何使用ArrayMap隨機
- 14. 如何使用SQLite隨機()
- 15. Android客戶端套接字隨機關閉,如果使用3G連接,而不是WiFi連接
- 16. 多路連接隨機斷開連接
- 17. 如何中介機構能提高連接成功率(的WebSockets)
- 18. websockets連接超時
- 19. 隨機用戶名
- 20. 如何將TCP連接轉發到WebSockets?
- 21. 可以使用websockets創建客戶端到客戶端的連接嗎?
- 22. 如何使用隨機化鏈接使用php
- 23. 用戶如何連接SysDBA?
- 24. 使用WebSockets到Windows Azure的連接使用MVC控制器
- 25. Tcplistener隨機重置連接
- 26. 隨機SocketException:連接重置
- 27. 連接記錄隨機
- 28. 隨機連接到MySQL
- 29. Jconsole隨機停止連接
- 30. GKE隨機丟棄連接