Nodejs + Websocket 指定发送及群聊的实现
目的
通过nodejs+ws(Websocket)实现点对点发送及群聊发送
项目搭建直接跳过,这里列举一下用到的插件
yarnaddws
WebSocket
话不多说,直接上码
对比上一篇文章<
webSocket点对点也好,群聊也好,主要是用到一个方法clients它的作用就是存储了连接,
我们可以通过对每一个连接增加标识,然后根据接收到的信息进行解析,遍历然后发送正确的响应。
先解析下代码(小声BB),下面会有HTML页面
nbs.on("connection",(ws,req)=>{ ws.on("message",message=>{ //这里解析数据 constresult=JSON.parse(message); //是否是登陆,登陆后绑定id if(result.login){ ws.socketIdxos=result.id; }else{ //这里只做一个小的场景,不是登陆就是发送信息 //根据存储的id是否是要发送的对象来单独响应 nbs.clients.forEach(s=>{ if(s.socketIdxos==result.to&&s.readyState==1){ s.send(JSON.stringify({data:result.mes})); } }); } }); ws.on("close",message=>{ console.log(ws.socketIdxos,"退出连接"); }); });
HTML
这里我分别建了三个页面其中两个模拟用户,一个模拟群聊
这是BBB用户,另一个页面是AAA只是改了下信息而已,就不都贴上来了,很简单
BBB111 发送 群聊
下面的是只用来接收的群页面,更简单
群聊
展示
constws=newWebSocket("ws://localhost:8181"); localhost可以换成的你的本机IP,这样页面在其他电脑也可以发送到你的页面上
可以看到,在BBB的页面,接收到了AAA发送的信息
无论是AAA发送的群里信息,还是BBB发送的群里信息,在群聊页面都是可以看到的
至此,一个简单的私聊,群聊WebSocket就完成了,最后希望大家有所收获,再会!!
参考网址如下: https://www.nhooo.com/article/178117.htm
本篇文章是为记录小白的成长历程(主要是记性不好,记个笔记有保障,用到的时候可以拿出来瞅瞅)2019/12/26
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。