gpt4 book ai didi

javascript - 如何更改 URL Websocket NodeJs(服务器/客户端)

转载 作者:行者123 更新时间:2023-12-03 04:02:35 25 4
gpt4 key购买 nike

我有一个带有express的服务器 Node Js,我想在同一页面server.js(包含我的所有 Controller )中与我的客户端使用两个套接字,突然我想将第一个套接字放在url下(“/connection” ),以及 url 下的第二个(“/giveUserConnected”),它将帮助我恢复连接的用户,例如:

client.html :
var socket = io.connect('http://127.0.0.1:9999/connection');

联系server.js:

app.get('/connection',function (req,res) {
io.on('connection', function(socket){
console.log('a user connected');
});
});

以及client.html中的另一个socket2:

var socket2 = io.connect('http://127.0.0.1:9999/giveUserConnected');

联系server.js:

app.get('/giveUserConnected',function (req,res) {
io.on('connection', function(socket){
// to recuper list of users connected
});
});

但是不起作用解决办法是什么,谢谢

最佳答案

您将 HTTP 请求与 socket.io 请求混合在一起,这是两个不同的东西。

当您提供 io.connect() 的路径名(在本例中为 /connection/giveUserConnected)时,socket.io 服务器使用路径作为 namespace 的名称。客户端连接到的。

我认为您想要的只是为将返回用户列表的特定消息创建一个事件处理程序。您可以使用 acknowledgement functions为此:

// server
io.on('connection', function(socket) {
socket.on('giveUserConnected', function(fn) {
fn(listOfUsers);
});
});

// client
socket.emit('giveUserConnected', function(users) {
...
});

listOfUsers 的内容取决于您的应用。

关于javascript - 如何更改 URL Websocket NodeJs(服务器/客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44661030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com