2012-08-31 79 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

相关问题