介绍
这期内容当中小编将会给大家带来有关使用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怎么向指定用户发消息了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。