socket.io与快递

我有一个项目,我用快递socket.io,

所以我需要(我试过)是广播一条消息,但从一个明确的行动。 这是可能的,我不知道如何得到一个参考发送或广播。

app.get('/', function(req, res) { //i need to send messages from here }); 

其他的东西,如同时使用快递+ socket.io正在与我:)

你可能想看看我的socket.io + Express的底漆 。 那里详细介绍你想要什么。

 // Send to all connected sockets io.sockets.send('Hello, World!'); // Send to all sockets in a specified room io.sockets.in('room').send('Hello, Room!'); 

其中io是通过调用socketio.listen()返回的值。 您可以将该代码放置在应用程序的任何位置,例如,在您的app.getcallback中。

只要我明白,

为什么不使用套接字消息types作为事件而不是http获取或发布? 在客户端,您可以通过websocket发送消息,让我们说一个事件属性。

所以在你的情况下:

 <SCRIPT>
   //初始化socket.io ...

   // 接着
   socket.send({event:'homepage loaded',foo:'bar'});
 </ SCRIPT>

而在服务器端:

 var io = io.listen(server);

 io.on('连接',函数(客户端){
   client.on('message',function(message){
     if(message.event =='homepage loaded'){
       client.broadcast(...);
     }
   });
 });

看看我使用ExpressJS + Juggernaut(pubsub over socket.io)的示例回购:

http://github.com/shripadk/express-juggernaut-demo

这可能是你所需要的,因为它使用发布/订阅矫枉过正。 但它在一定程度上解决了使用常规ExpressJS路由的问题。 在克隆存储库之后签出master分支:

git checkout master

我find了一个很好的例子,如何使我所需要的,但与faye它在这里http://nodecasts.org/

我不知道Juggernaut,Faye和直接Socket.io的区别,但是Faye很好

对于我的情况。我认为他们都在内部使用Socket.io。