2012-08-31 120 views
2

我是新使用的是Node.js和socket.io通過node.js中兩個用戶之間發送消息和socket.io

我有兩個客戶,他們有自己的ID 1 我需要通過socket.io發送包含以下內容的數據: user_from,user_to,action

並且數據從雙方發送。

我如何發送這個數據從客戶端1與socket.emit(),所以我可以設置變量:數據?

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

並重新從服務器發送到客戶端2? (我發現這個代碼:io.sockets.volatile.emit('broadcast_msg',味精);但我想只從特定用戶發送給特定用戶,而不是所有用戶連接)。

謝謝你的幫助,我看到很多例子,但不是我需要的。

UPDATE:

我不明白這個代碼:

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

我爲什麼要這麼做?我有例如:index.php?menu = 30或index.php?menu = 30 & action = 12

回答

1

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

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

如果你正在構建任何需要擴展的東西,也許你應該看看像RabbitMQ這樣的消息框架。這正是爲了在分佈式實體(如用戶)之間路由消息。

乾杯!

+0

我正在開發項目,我需要在客戶端2瀏覽器上顯示客戶端1鼠標 – mgalesic

+0

這裏是一篇博客文章,它完全描述了這個http://jeffkreeftmeijer.com/2010/experimenting-with-node-js/ – Sachin

+0

是我之前發現了這個例子,但它不是用socket.io編寫的 – mgalesic

相關問題