这两个 可是不能同时使用的呢
这两个 可是不一样的呢
可以理解成 socket.io
是在 websocket
上面封装了一层 并提供了 断开重连
心跳事件
等等
websocket
- https://github.com/flarestart/egg-websocket-plugin
- 可和
http
适用同个url
- 所有消息 都在 一个
控制器
下
route
1 | app.ws.route('/ws', controller.ws.index.start) |
使用方式
this.app.ws
和 this.ctx.websocket
情况大部分相似 区别于 具体命令
1 | // 给自己发消息 |
socket.io
- https://socket.io/docs/v3/server-api/index.html
- https://github.com/eggjs/egg-socket.io
- 不可和
http
适用同个url
- 将不同的消息 分配给 不同的
控制器
route
1 | const { io } = app |
namespace
1 | namespace: { |
使用方式
this.app.io
和 this.ctx.socket
情况大部分相似 区别于 有没有上下文
- 此上下文指 是不是由
socket.io
触发的事件
1 | // 加入房间 |