0

我刚开始学习如何制作 Web 应用程序。我正在 nodejs 中创建一个网络服务器(一个待办事项列表应用程序)。我正在使用 express 框架,并将 mongodb 作为数据库。对于客户端和服务器之间的通信,我使用的是 socket.io。

我找不到一种方法,以便当服务器发出事件和事件时,客户端将更新他所有打开的页面窗口上的信息。现在,信息仅在触发服务器上的事件的窗口上更新。这是服务器代码:

服务器代码:

var io = require('socket.io').listen(server);
io.of('/home').on('connection', function (socket) { 
    socket.on('newListGroup', function (data) {
        ...
        socket.emit('groupNo', obj);
    });
}); `

客户端javascript:

var socket = io.connect('http://localhost/login');
socke.on('groupNo', function(data){ ... });
$('#newListGroup').blur(function() {
    socketLogin.emit('newListGroup', {newGroup:newGroup});
});

这可以工作还是我应该采取另一种方法?

4

1 回答 1

4

您可以像这样向所有套接字广播消息:

var io = require('socket.io').listen(server);
io.of('/home').on('connection', function (socket) {
    socket.on('newListGroup', function (data) {
    socket.broadcast.emit('groupNo', obj); });
});

它应该仅限于命名空间,但如果您想要这样做,您可能必须实现自己的逻辑,以便仅向同一客户端上的窗口(可能使用身份验证)广播。

于 2013-06-14T17:29:03.730 回答