博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node + H5 + WebSocket + Koa2 实现简单的多人聊天
阅读量:6180 次
发布时间:2019-06-21

本文共 733 字,大约阅读时间需要 2 分钟。

服务器代码  ( 依赖于 koa2,  koa-websocket )

/* 实例化外部依赖 */let Koa = require("koa2");let WebSocket = require("koa-websocket");/* 实例化 WebSocket, 实例化储存所有上线文数组 并分配监听的端口 */let app = WebSocket(new Koa());let ctxs = [];app.listen(80);/* 实现简单的接发消息 */app.ws.use((ctx, next) => {    /* 每打开一个连接就往 上线文数组中 添加一个上下文 */    ctxs.push(ctx);    ctx.websocket.on("message", (message) => {        console.log(message);        for(let i = 0; i < ctxs.length; i++) {            if (ctx == ctxs[i]) continue;            ctxs[i].websocket.send(message);        }    });    ctx.websocket.on("close", (message) => {        /* 连接关闭时, 清理 上下文数组, 防止报错 */        let index = ctxs.indexOf(ctx);        ctxs.splice(index, 1);    });});

前端代码 ( 该页面可同时打开多个进行聊天 )

    
Title

 

 

转载地址:http://avbda.baihongyu.com/

你可能感兴趣的文章
MFMailComposeViewController 发邮件
查看>>
velocity 模板解析类
查看>>
HTTP以及HTTPS协议
查看>>
Browser:浏览器版本判断类
查看>>
MyEclipse Servers视窗出现“Could not create the view: An unexpected exception was thrown”错误解决办法...
查看>>
伪类和伪元素
查看>>
jquery
查看>>
Day 3:模块结构和布局
查看>>
PWP+Nginx 集成环境下载
查看>>
【整理】RabbitMQ publish方法中的immediate和mandatory属性
查看>>
JAVA CAS原理深度分析
查看>>
权限模型
查看>>
如何配置 Log4J 只保留最近七天的日志文件
查看>>
Python 类与元类的深度挖掘 II
查看>>
prometheus收集springboot指标
查看>>
global gtags的配置
查看>>
iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
查看>>
Creating a Windows Image on OpenStack
查看>>
jquery图片自动缩放
查看>>
ie6 失真问题
查看>>