node.js - 向所有连接的广播消息

时间:2013-02-17 02:19:26

标签: javascript ajax node.js

所以我们有以下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);

假设我想向所有连接的用户广播消息, <{1}}函数中write的{​​{1}}方法不会这样做。

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

使用纯Node.js有一种方法吗?因为我现在只是学习它,我现在更喜欢使用纯node.js ..

1 个答案:

答案 0 :(得分: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');
});