如何将随机用户与Websockets连接?

时间:2014-04-08 11:50:57

标签: websocket

我使用websockets创建了一个正在运行的聊天应用程序。我有一个VPS,我想在这里托管这个应用程序。该应用程序工作正常,但如果我可以连接两个随机用户(现在它就像一个聊天室,其中一大堆人可以聊天),这将是很好的。你如何跟踪谁在线?我应该每隔x秒检查一次AJAX吗? SetTimeOut会使我的服务器超载,我害怕......这是怎么做到的?我正在考虑解决方案,但AJAX解决方案是我能想到的唯一解决方案,但我不想让服务器超载...

2 个答案:

答案 0 :(得分:0)

您不能直接使用WebSockets连接两个用户,但您可以使用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,但也许事件处理可以给你一些想法。

答案 1 :(得分:0)

如果您正在构建真实的聊天系统,则应使用聊天协议,例如XMPP(还有其他人)。这为您提供了更深层次的聊天语义,使用低级WebSocket,这是一种传输协议,而不是真正的应用程序级协议。如果你想通过网络聊天,那么你需要XMPP使用HTTP(使用BOSH,基于HTTP)或WebSocket(通过WebSocket搜索XMPP)。