【发布时间】:2013-09-04 08:59:35
【问题描述】:
假设我有一个网站在主页上不需要 web-sockets,但在其他一些相对路径上需要它(例如“/new”)。
假设我需要“连接”事件来计算登录到“主页”页面和“新”页面的用户。
我尝试在相对路径中配置 socket.io 'connection' 事件,例如:
app.get('/new',
function(req,res) {
io.sockets.on('connection', function (socket) {
.....
}
});
但是:
- 表现不佳。当很多用户连接时,该事件会在不应该发生的时候引发。
- 我没有在网上看到任何像上面这样的例子。所有 socket.io 事件都在主文件 (app.js) 中配置一次。
怎么做?
【问题讨论】:
-
仅仅为了响应 express /new 路由而包含 socket.io 客户端脚本怎么样?然后只有在访问 /new 时才建立连接
-
但如果我需要对两个页面使用“连接”,它将无法工作
-
好的,我想我明白了……您想统计特定页面上的活跃用户数吗?
-
这只是我给出的例子。我真正想要的是在两个不同的页面上使用“连接”事件。
-
是的,我做到了。只需在访问者首次请求 /new 页面时初始化(交付 socket.io 用户脚本)套接字并将其存储在 cookie 中。当他访问任何其他页面时,您可以读取 cookie 并在必要时重新创建套接字。您连接到 socket.io 的连接接口默认是 yourdomain.tld/socket.io/