Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebSocket在客户端发送多个事件和多个事件处理程序_Javascript_Node.js_Express_Websocket - Fatal编程技术网

Javascript WebSocket在客户端发送多个事件和多个事件处理程序

Javascript WebSocket在客户端发送多个事件和多个事件处理程序,javascript,node.js,express,websocket,Javascript,Node.js,Express,Websocket,最近,我开始使用WebSocket进行服务器-客户端通信。问题是当我想在一个连接中发送多种类型的数据时。有没有办法在一个连接中将多个消息事件从服务器端发送到客户端,并在客户端分别处理它们? 像 wss.on('connection',函数连接(ws){ ws.send('message1',data1); ws.send('message2',data2); ws.send('message3',data3); } Data1、2、3是不同类型的数据(Data1是json,data2是字符串)

最近,我开始使用WebSocket进行服务器-客户端通信。问题是当我想在一个连接中发送多种类型的数据时。有没有办法在一个连接中将多个消息事件从服务器端发送到客户端,并在客户端分别处理它们? 像

wss.on('connection',函数连接(ws){
ws.send('message1',data1);
ws.send('message2',data2);
ws.send('message3',data3);
}

Data1、2、3是不同类型的数据(Data1是json,data2是字符串),我想在客户端将它们用于不同的目的。

您可以创建一个每个消息都遵循的结构,并将该类型附加到此结构:

wss.send(JSON.stringify({type:'firstName',value:'John'}));
send(JSON.stringify({type:'lastName',value:'Doe'}));
然后通过检查类型来处理消息:

wss.on('message',ev=>{
const data=JSON.parse(ev.data);
开关(数据类型){
案例“firstName”:
document.getElementById('first-name')。textContent=data.value;
打破
案例“lastName”:
document.getElementById('last-name')。textContent=data.value;
打破
违约:
//未知的websocket消息类型
}
});

好的,那么我如何在客户端分别获取这些消息和事件?@TudorStanciulescu我已经更新了我的答案,我希望它能帮助我尝试一下,谢谢,我会让你知道它是否有效!更新:你是一个救生员,我不会考虑这种方法。谢谢!