簡體   English   中英

如何更改URL Websocket NodeJ(服務器/客戶端)

[英]How to change URL Websocket NodeJs (server/client)

我有一個表示為Express的服務器節點Js,我想在同一頁面server.js(包含我的所有控制器)中與我的客戶端一起使用兩個套接字,突然我想將第一個套接字放在url(“ / connection”)下,並且網址(“ / 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 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是什么取決於您的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM