Javascript 使用node.js中的WebSocket发送消息
你好 今天我试图发送一条websocket消息。我做错了什么?我评论了下面的代码,希望你们能理解我的目标Javascript 使用node.js中的WebSocket发送消息,javascript,node.js,websocket,Javascript,Node.js,Websocket,你好 今天我试图发送一条websocket消息。我做错了什么?我评论了下面的代码,希望你们能理解我的目标 // Import websocket const websocket = require('ws'); // Create server var socket = new websocket.Server({ port: 8080 }) // When client connects to websock server, reply with a hello world message
// Import websocket
const websocket = require('ws');
// Create server
var socket = new websocket.Server({ port: 8080 })
// When client connects to websock server, reply with a hello world message
socket.on('connection', ws => {
ws.send('{"message":"Hello world."}'); //This works.
});
function send_message(msg){
ws.send(msg);
}
/* Calculate something, await for user interaction, etc... */
// When im done with all that, just send a message.
send_message('{"message":"please work"}'); // This does not work
我做错了什么
const socket = new WebSocket('server_url'); // Connection opened
socket.addEventListener('message', function (event) { socket.send('send message'); });
我用这样的WebSocket发送消息
我希望这将帮助您解决这些问题
你需要跟踪这些联系。如何做到这一点取决于你自己
const websocket = require('ws');
const socket = new websocket.Server({ port: 8080 })
const connections = [];
socket.on('connection', ws => {
connections.push(ws);
});
// send a new message to every connection once per second
setInterval(() => {
const date = new Date();
for (const ws of connections) {
ws.send(`hello again: ${date}`);
}
}, 1000);
当然,一个真正的应用程序可能会通过比一系列连接更复杂的东西来跟踪连接。当这些连接断开时,它还需要停止跟踪这些连接等等。如果你们愿意,我可以列出我尝试过的无数方法,但我觉得这会大大夸大这个问题!可能会显示您的实际代码?上面的代码首先通过
ws发送消息。send
其中ws
是来自新连接的参数。底部的send通过一些神奇的变量ws
发送,而您从未显示它是如何设置的。如果你想发送更多的消息,你需要把第一个ws
放在某个地方,比如把它添加到连接列表中,或者把它传递给管理它的类等等。@gmanws
不是什么神奇的变量吗?设定在8号线。当然,我知道这个变量只能在它的作用域内使用。。这就是我提出这个问题的原因。如何将ws传递到其范围之外?它是一个神奇的变量。你声称这是你尝试过的,但如果你真的尝试了你写的东西,它就会崩溃并出现错误。ws undefined
或null不是客户端代码的函数。这在node.js上不起作用。此外,这件事仍在等待事件发送消息。已对此进行了2天的故障排除。谢谢你给我指出正确的方向。