让我澄清问题的标题。
在客户端,我有两个不同的html
个文件,client1.html
和client2.html
。它们通过websockets将数据发送到node.js中的同一server.js
文件。
在服务器端,如果数据来自client1.html
,我想执行查询并将结果发送到client1.html
。在同一台服务器上,如果数据来自client2.html
我想执行另一个查询并向client2.html
发送消息“数据已保存”。
我想,我必须在server.js
中创建两个不同的函数。好。
但是,我的问题是,在服务器端,如何判断哪些数据来自哪个客户端? 此外,服务器如何将正确的消息发送回正确的客户端?
提前致谢
答案 0 :(得分:2)
您必须注册您的客户。例如,如果用户A在页面client1.html
上,那么您发送消息(通过websockets),例如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
等所有用户的列表。其余的显而易见:您遍历目标列表并向这些列表发送通知用户。
当然这里有很多小细节。就像你必须在连接失效时从列表中删除用户(因此你需要一个后台任务来检查一个连接是否存活)等等。但这是一般的想法。