2013-07-31 22 views
0

让我澄清问题的标题。我可以在同一台服务器上有不同的websockets输入 - 输出到不同的客户端

在客户端,我有两个不同的html文件,client1.htmlclient2.html。他们通过websockets将数据发送到node.js中相同的server.js文件。

在服务器端,如果数据来自client1.html我想执行查询并将结果发送到client1.html。在同一台服务器上,如果数据来自client2.html,我想执行另一个查询并发送消息“Data Saved”给client2.html

我想,我必须在server.js中创建两个不同的功能。好。

但是,我的问题是,在服务器端,如何判断哪些数据来自哪个客户端? 此外,服务器如何将正确的消息发送回正确的客户端?

在此先感谢

回答

2

您必须注册您的客户。例如,如果用户A是client1.html页面,那么你发送的例子(你喜欢的或任何其他形式)的消息(透过WebSocket)JSON:在服务器端

{ "user": "A", "page": "client1.html" } 

现在你只标记该用户/连接来自client1.html。您可以添加例如一个自定义属性:

conn.source = "client1.html"; 

或任何其他方式(取决于框架)。

你甚至可能使用握手这个(而不是发送JSON):连接到服务器时,例如做(在客户端):

var ws = new WebSocket("ws://myserver/client1.html"); 

现在你只需要做同样的握手代码(client1.html是握手中的URL的一部分)。

至于其他问题:在服务器端,你保留所有用户的列表client1.html,client2.html等。其余显而易见的是:你循环目标列表并发送通知给这些用户。

当然这里有很多小细节。就像你必须从列表中删除用户,如果一个连接已经死了(因此你需要一个后台任务来检查一个连接是否存在),等等。但这是一般的想法。

+0

感谢您的支持...您能否提供任何带有示例或教程的链接? – slevin

相关问题