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.get
callback中。
只要我明白,
为什么不使用套接字消息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。