Node.js表示websocket不会广播给所有连接的客户端

我试图创build一个节点WebSocket消息和广播使用openshift 。 以下是我的代码。

var WebSocketServer = require('ws').Server; var http = require('http'); var ipaddr = opneshift_ip; var port = openshift_port; var server = http.createServer(); var wss = new WebSocketServer({server: server, path: '/connectserv'}); wss.broadcast = function(data) { for(var i in this.clients) { console.log(this.clients[i]); this.clients[i].send(data); } }; wss.on('connection', function(ws) { console.log('a client connected'); ws.on('message', function(data) { console.log('>>> ' + data); ws.send('got '+data); if (data == 'broadcst') { console.log('broadcst'); wss.broadcast('Hi All'); } }); ws.on('close', function() { console.log('Connection closed!'); }); ws.on('error', function(e) { console.log(e); }); }); console.log('Listening at IP ' + ipaddr +' on port '+port); server.listen(port,ipaddr); 

当任何客户端连接时,控制台写入“连接的客户端”。 当任何客户端发送消息时,控制台写入“>>>消息”,并在客户端获取相同的信息(“获取消息”)

但是,当多个客户端连接,如果我想广播一条消息到所有连接的客户端,我发送“broadcst”作为消息。 比进去

  if (data == 'broadcst') { console.log('broadcst'); wss.broadcast('Hi All'); } 

但只有发送的客户端才能得到消息。

如何让所有的客户得到消息? 每个客户是否创build单独的会话? 如何在这里使用redis?

任何快速帮助赞赏。

谢谢。

尝试

 wss.broadcast = function(data) { for(var i in wss.clients) { console.log(wss.clients[i]); wss.clients[i].send(data); } }; 

与wss广播