我可以在同一台服务器上输入不同的websocket吗?可以在不同的客户端上输出吗



让我澄清一下问题的标题。

在客户端,我有两个不同的html文件,client1.htmlclient2.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.htmlclient2.html等的所有用户的列表。剩下的很明显:您循环查看目标列表并向这些用户发送通知。

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

相关内容

  • 没有找到相关文章

最新更新