环境
服务端:Egg
- egg2.15.1
- egg-socket.io4.1.6
客户端:小程序
问题
1.小程序不支持socket.io
推荐使用weapp.socket.io
2.小程序端socket配置
// weapp.socket.io项目打包后的文件
const io = require('../static/js/weapp.socket.io');
io(url, {
transports: ['websocket'], // 此项必须设置
});
3.服务端配置
4.服务端namespace理解
-
namespace的键需要和路由配置中io.of后面保持一致
config.io = { // namespace命名空间配置为 namespace: { '/api': { // 预处理器中间件, 我们这里配置了一个auth, 进行权限判断, 它对应的文件是/app/io/middleware/auth.js, 这里可以配置多个文件, 用逗号隔开 connectionMiddleware: [ 'auth' ], // 这里我们可以做一些权限校验之类的操作 packetMiddleware: [], // 通常用于对消息做预处理,又或者是对加密消息的解密等操作 }, }, }; io.