一个简单的nodejs websocket服务类
简介
某一天,想做一个网页版的视频转换,后端使用ffmpeg,想通过websocket来通知前端ffmpeg处理进度;速速去npm搜了一把,忙活半天,感觉这些包都太重了。后自己决定研究一把websocket数据帧,所以诞生了这个类。
几行简单的代码即可实现websocket通信
//测试服务器 const Wss = ; let srv = ; srv{ ws{ console; this; } ws{ console; this; } ws{ console; } ws{ console; }}; srv{ console;} srv { console;} srv;
Wss类
通过new Wss创建一个websocket服务器对象
let srv = ;//不需要参数,返回一个websocket对象实例启动wensocket服务
srv;//端口号参数为必选,回调函数可选,回调函数会在服务启动成功后执行处理服务器连接事件
//每当有新的websocket链接进来的时候,都会触发该事件srv{//回调里边仅有一个参数传入,那就是当前的连接对象ws//ws对象是每个用户的链接(它的具体事件属性以及方法,请参考下面的ws类)//这里简单的处理ws对象发过来的信息ws{console;//给客户端发回去this;}}处理服务器错误事件
srv{console;}处理服务器关闭事件
srv{console;}wss服务器connections属性
srvconnections <Set> //存放所有的用户连接,做广播的时候会用到
ws类
每当wss实例触发onConnection事件的时候,会往事件回调里传递一个ws实例,ws实例是每个用户的链接,可以处理信息发送,接收等等
ws握手事件
ws{console;}ws关闭事件
ws{console;}ws错误事件
ws{console;}ws消息事件(接收消息)
ws{console;//frame参数为当前接收的websocket数据帧对象, data参数为接收到的消息}ws发送消息
let msg = "你好啊,客户端";ws;
效果如图(gif)
关于websocket数据帧的相关参考资料
是不是非常的简单呢,水平有限,欢迎指点和star