2017-06-20 61 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

啊謝謝你的男人,很好的解決方案, 我沒想過 –

相關問題