簡體   English   中英

通過node.js和socket.io在兩個用戶之間發送消息

[英]Sending message between two users via node.js and socket.io

我是node.js和socket.io的新手

我有兩個客戶端,它們的ID為1和2。我需要通過socket.io發送包含以下內容的數據:user_from,user_to,action

並且數據從雙方發送。

我如何使用socket.emit()從客戶端1發送此數據,所以可以設置variable:data?

如何使用socket.get在服務器上讀取該數據?

並再次將其從服務器發送到客戶端2? (我找到了此代碼:io.sockets.volatile.emit('broadcast_msg',msg);但是我只想將其從特定用戶發送到特定用戶,而不是將所有連接的用戶發送出去。)

感謝您的幫助,我看到了很多例子,但不是我所需要的。

更新:

我不明白這段代碼:

// on server started we can load our client.html page
function handler(req, res) {
  fs.readFile(__dirname + '/client.html', function(err, data) {
    if(err) {
      console.log(err);
      res.writeHead(500);
      return res.end('Error loading client.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}

為什么我需要這樣做? 我有ex:index.php?menu = 30或index.php?menu = 30&action = 12

您正在尋找路由功能。 socket.io提供的是點對點通信。 例如從1個​​客戶端到服務器。

因此,從邏輯上講,您需要服務器路由郵件,這意味着郵件應具有尋址信息(例如,目標收件人的ID)。 然后,可以通過例如創建(自定義)特定於用戶的事件來路由消息,這些事件將基於傳入消息的目標用戶來觸發。

如果要構建任何需要擴展的東西,也許您應該看一下RabbitMQ這樣的消息傳遞框架。 這恰好意味着在分布式實體(例如用戶)之間路由消息。

干杯!

暫無
暫無

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

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