可能是由于LORIOT服务器的同源策略和WebSocket的跨域请求问题导致的。开发者可以尝试使用CORS进行解决。
代码示例:
const WebSocket = require('ws');
const { origin } = require('./config');
const server = new WebSocket.Server({ port: 8080, origin });
server.on('connection', function (ws) {
ws.on('message', function (message) {
console.log('Received: %s', message);
ws.send(`echo ${message}`);
});
ws.on('close', function (code, reason) {
console.log('Close code: %s, reason: %s', code, reason);
});
ws.send('Connected to WebSocket server');
});
const socket = new WebSocket(`ws://${HOST}:${PORT}`);
socket.onmessage = (event) => {
console.log(`Message: ${event.data}`);
};
socket.onclose = () => {
console.log('WebSocket closed');
};
socket.onerror = (error) => {
console.log(`WebSocket error: ${error}`);
};
socket.onopen = () => {
console.log('WebSocket opened');
};
请注意,还需在LORIOT的WebSocket服务器端进行配置。具体可以参考LORIOT官方文档。