【发布时间】:2017-01-20 23:24:37
【问题描述】:
目前我在 Node.js 中启动的超级简单的 websocket 设置似乎无法正常运行“广播”问题。这是我第一次使用 websockets,所以我可能遗漏了一些很明显的东西,但是在网上搜索了一段时间后,我无法找到解决方案。
基本上我只是想能够将一些 json 推送到所有当前连接的客户端。
我可以确认该套接字正在工作,因为当我在 ws://localhost:3000 进行连接时,我能够在“连接”块中看到“ws.send”上的静态连接字符串,并看到多个如果我与多个客户端连接,客户端会从广播方法中注销。
任何关于我可能遗漏的帮助将不胜感激,
var WebSocketServer = require('uws').Server;
var wss = new WebSocketServer({ port: 3000 }); // ws://localhost:3000
// Static test var
var test_message = {
'test': 'Response',
'test2': 'Response2'
};
// Broadcast to all.
wss.broadcast = function broadcast(data) {
wss.clients.forEach(function each(client) {
console.log('IT IS GETTING INSIDE CLIENTS');
console.log(client);
// The data is coming in correctly
console.log(data);
client.send(data);
});
};
wss.on('connection', function(ws) {
ws.on('message', function(message) {
wss.broadcast(test_message);
console.log('Received: ' + message);
});
// TODO This is static just to check that the connection is properly working
ws.send('You successfully connected to the websocket.');
});
【问题讨论】:
-
它似乎在我的情况下工作。可以分享一下客户端代码吗?
-
现在我只是使用 chrome 扩展来测试套接字,我没有编写客户端。我正在使用的扩展名为“Smart Websocket Client”,无法看到将消息推送到该客户端响应部分的广播。感谢您的帮助!