首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socket.io + Express:针对不同路由的不同事件/函数

Socket.io + Express:针对不同路由的不同事件/函数
EN

Stack Overflow用户
提问于 2013-04-01 03:42:10
回答 1查看 1.3K关注 0票数 3

好吧..。我启动并运行了我的第一个express + socketio节点应用程序。

Socketio几乎用于我的应用程序中的每个页面,因为当添加新条目时,这些页面上显示的所有“列表”都应该使用server-push进行更新。

所以我得到了我的主app.js文件+一个包含所有route.js文件的路由目录。现在我需要为每个路由使用不同的socketio events +函数,因为这些页面上发生了不同的事情。

现在的问题是,我如何访问我的express服务器来初始化socketio对象?

代码语言:javascript
复制
// app.js
var server = app.listen(app.get('port'), function(){...});
var io = socketio.listen(server);
// socket.io code here
// the code from here on should be different for each route.js file

或者换句话说:

如何将socket.io的所有事件和函数定义排除到相应的路由文件中,以便为每个页面定义不同的socket.io事件和函数?套接字当然可以总是在同一个端口上运行(我希望这没有问题?!)。

我希望这是可以理解的。有点难以解释。

向Patrick致以最良好的问候

EN

回答 1

Stack Overflow用户

发布于 2013-04-01 04:12:41

根据用户连接的路由,您可以使用socket.io库中的名称空间向特定的用户组发送消息。

向从/news连接的所有用户发送消息

io.of('/news').emit('update',{message:"a new article is available"});

对于客户端,一个简单的事件侦听器就可以做到这一点(假设用户属于/news命名空间)

代码语言:javascript
复制
socket.on('update',function(data){
 alert(data.message);
});

我不需要使用不同的事件,只需使用相同的事件,并在每个路由中以不同的方式处理它们即可。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15733699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档