我使用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. 如何使用Ruby连接到多个WebSockets?
- 10. 如何使用websockets连接两个node.js服务器?
- 11. 如何随机使用python
- 12. 如何使用ArrayMap随机
- 13. 如何使用SQLite随机()
- 14. 如何使用随机库?
- 15. Android客户端套接字随机关闭,如果使用3G连接,而不是WiFi连接
- 16. 多路连接随机断开连接
- 17. 如何中介机构能提高连接成功率(的WebSockets)
- 18. websockets连接超时
- 19. 随机用户名
- 20. 如何将TCP连接转发到WebSockets?
- 21. 如何使用随机化链接使用php
- 22. 可以使用websockets创建客户端到客户端的连接吗?
- 23. 用户如何连接SysDBA?
- 24. 使用WebSockets到Windows Azure的连接使用MVC控制器
- 25. Jconsole随机停止连接
- 26. 随机SocketException:连接重置
- 27. 连接记录随机
- 28. GKE随机丢弃连接
- 29. Tcplistener随机重置连接
- 30. 随机连接到MySQL