使用Websocket怎么向指定用户发消息

  介绍

这期内容当中小编将会给大家带来有关使用Websocket怎么向指定用户发消息,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>实现思路

<李>

为每一个套接字设置唯一socketId并存入饼干

<李>

后端接收到http取出其中的饼干信息拿到socketId,循环找到此id的套接字发送消息

<强>代码实现

前端代码

if  (! Cookies.get (& # 39; socketId& # 39;)), {//才能,这里为模拟生成唯一id 建议,要求(& # 39;uuid # 39;)   var 才能;uuid =, math . random (), *, 1000;   Cookies.set才能(& # 39;socketId& # 39;,, uuid)   }      function  connectWebsocket (), {   let 才能;url =,“ws://$ {document.location.host} ';      var 才能;ws =, new  WebSocket (url);      时间=ws.onopen 才能;function  (), {   ,,,console.log(“连接成功!“);   ,,,ws.send (   ,,,,,JSON.stringify ({   ,,,,,,,类型:,“setSocketId",   ,,,,,,,数据:,Cookies.get (& # 39; socketId& # 39;)   ,,,,,})   ,,,);   ,,};   时间=ws.onclose 才能;function  (), {   ,,,//,关闭,websocket   ,,,console.log(“连接已关闭…正在重连…“);   ,,,connectWebsocket ()   ,,};   ws.onmessage 才能=,res =祝辞,{   ,,,console.log(“收到套接字消息:“,,res.data)   ,,,var  data =, JSON.parse (res.data)   ,,,document.querySelector(& # 39; #内容# 39;).innerHTML  +=, data.data;   ,,};   }      connectWebsocket ()

后端代码

wss.on(& # 39;连接# 39;,,function 连接(ws,点播),{   ,,,ws.req =,要求;   ,,,ws.sendJson =, function  (json), {   ,,,,,if  (==this.readyState  1), {   ,,,,,,,this.send (JSON.stringify (json))   ,,,,,}   ,,,}   ,,,ws.on(& # 39;消息# 39;,,function (消息),{   ,,,,,message =, JSON.parse(消息);   ,,,,,switch  (message.type), {   ,,,,,,,case  & # 39; setSocketId& # 39;:   ,,,,,,,,,ws.socketId =, message.data;   ,,,,,,,,,console.log (ws.socketId)   ,,,,,,,,,休息;   ,,,,,}   ,,,});   });   app.post (& # 39;/api/套筒/味精# 39;,,function (点播,res), {   ,,,var  query =, req.body;   ,,,console.log(查询)      ,,,var  socketId =, req.cookies.socketId;      ,,,res.wss.clients.forEach (ws =祝辞,{   ,,,,,if  (ws.socketId ==, socketId ,,, ws.readyState ==, 1), {   ,,,,,,,ws.sendJson ({   ,,,,,,,,,类型:& # 39;testMsg& # 39;   ,,,,,,,,数据:query.msg   ,,,,,,,});   ,,,,,}   ,,,})      ,,,res.send ({})   })

上述就是小编为大家分享的使用Websocket怎么向指定用户发消息了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

使用Websocket怎么向指定用户发消息