我是一个新手,正在使用MEAN堆栈的应用程序。这是一个基于物联网的应用程序,使用nodejs作为后端。
我有一个场景,我必须向每个连接的客户端发送广播,这些客户端只能打开Socket并等待任何传入的数据。除非像Web浏览器一样,它们无法执行任何事件,直到现在我已经通过了Socket.IO
和Express.IO
,但找不到任何有助于实现我想要的send raw data to open socket connections
的东西。
是否有其他Node模块可以实现此功能?
下面是使用WebSocketServer的代码,
const express = require('express');
const http = require('http');
const url = require('url');
const WebSocket = require('ws');
const app = express();
app.use(function (req, res) {
res.send({ msg: "hello" });
});
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });
wss.on('connection', function connection(ws) {
ws.on('message', function(message) {
wss.broadcast(message);
}
}
wss.broadcast = function broadcast(msg) {
console.log(msg);
wss.clients.forEach(function each(client) {
client.send(msg);
});
};
server.listen(8080, function listening() {
console.log('Listening on %d', server.address().port);
});
现在,我的查询是这段代码何时执行
wss.on('connection', function connection(ws) {
ws.on('message', function(message) {
wss.broadcast(message);
}
}
2条答案
按热度按时间bnl4lu3b1#
inn6fuwd2#
尝试以下代码从服务器向每个客户端广播消息。
演示服务器代码