让我澄清一下问题的标题。
在客户端,我有两个不同的html
文件,client1.html
和client2.html
。它们通过websocket将数据发送到node.js.中的同一个server.js
文件
在服务器端,如果数据来自client1.html
,我想执行查询并将结果发送给client1.html
。在同一台服务器上,如果数据来自client2.html
,我想执行另一个查询,并向client2.html
发送消息"数据已保存"。
我想,我必须在server.js
中创建两个不同的函数。好的。
但是,我的问题是,在服务器端,如何判断哪些数据来自哪个客户端?此外,服务器如何将正确的消息发送回正确的客户端?
提前感谢
您必须注册您的客户端。例如,如果用户a在页面client1.html
上,则您发送一条消息(通过网络套接字),例如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
等的所有用户的列表。剩下的很明显:您循环查看目标列表并向这些用户发送通知。
当然,这里有很多小细节。比如,如果连接断开,你必须从列表中删除用户(因此你需要一个后台任务来检查连接是否有效)等等。但这是一般的想法。