1

所以我们有以下 node.js 代码 -

var http = require('http');

var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World! \n");
  response.end(");
}).listen(8125);

假设我想向所有连接的用户广播一条消息, 函数中的write方法不会这样做。responsecreateServer

那么如何向所有连接的用户/客户端广播消息?

有没有办法用纯 Node.js 做到这一点?因为我现在才学习它,我现在更喜欢使用纯 node.js ..

4

1 回答 1

3

这些是 HTTP 请求,因此不可能。HTTP 请求从第一次连接开始,并在所有数据发送完毕后结束。

在您的情况下,数据是

response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World! \n");

然后连接结束

response.end(");

如果您正在寻找可以保持实时联系的东西,请查看以下内容:

socket.io - 一个支持所有平台的实时传输库,并回退到旧软件。
WebSocket-Node - 客户端和服务器 websocket 实现。
Faye - 使用 Bayeux 协议的发布-订阅消息系统。

我只使用过socket.io,这就是广播的完成方式。

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.broadcast.emit('user connected');
});
于 2013-02-17T02:27:52.797 回答