2017-06-20 135 views
0

我有一个服务器节点与明文Js我想与我的客户端在同一个页面server.js(包含所有我的控制器)使用两个插座,突然我想把的URL(“/连接”)下的第一插座和URL(“/ giveUserConnected”),这将有助于我recupir所述连接的用户下中的第二个,参数为例:如何更改URL Websocket NodeJs(服务器/客户端)

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'); 
    }); 
}); 

另一个socket2在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 
    }); 
}); 

,但它不工作 如何解决,感谢与socket.io的请求,这是两个不同的东西

+0

答案是socket.io的文档。检查一下名为NAMESPACE – itsundefined

回答

0

你混合HTTP请求。

当你提供一个路径名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是取决于你的应用程序。

+0

啊谢谢你的男人,很好的解决方案, 我没想过 –