我有一个服务器节点Js,我想在同一页面服务器中与我的客户端使用两个套接字.js(包含我所有的控制器(,突然我想把第一个套接字放在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');
});
});
和另一个插槽 2 client.html :
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
服务器使用该路径作为客户端连接到的命名空间的名称。
我认为您想要的只是为将返回用户列表的特定消息创建一个事件处理程序。您可以使用确认函数来实现:
// server
io.on('connection', function(socket) {
socket.on('giveUserConnected', function(fn) {
fn(listOfUsers);
});
});
// client
socket.emit('giveUserConnected', function(users) {
...
});
listOfUsers
是什么取决于您的应用。