- 监听客户端所有连接事件
- 过滤所有消息
- 过滤所有请求、域名
- 客户端分组- 自动(随机auto、自定义defind)|手动manual
- 客户端剔除、转入
- 广播
- 排除功能
serveClient: false,
// below are engine.IO options
pingInterval: 10000,
pingTimeout: 5000,
cookie: false
//
path: '/io'
//
allowRequest: (req, cb) => {}
origins
io.origins('http://localhost:*')
io.origins((origin, cb) => {
if (origin === 'http://localhost:3000/') return cb(null, true)
cb(null, false)
})
io(namespace)
利用中间件数据校验
io.use((socket, next) => {
if (socket.request.headers.cookie) return next()
next(new Error('Authentication error'))
})
- io.on 监听All客户端连接
- socket.on
- socket
- socket.broadcast // all except self
- io
- io.sockets // io 代理消息发送
- io.sockets.socket(socketid) // io 代理消息发送
socket.join(data.room); socket.leave(data.room); 踢出分组
- io
- socket
- io.sockets
- ...
io.sockets.manager.rooms // all io.sockets.manager.roomClients[socket.id] // all with socket.id io.sockets.clients('particular room') // all with path
io.sockets.clients() // all io.sockets.in(data.room) // all in room socket.broadcast.to(data.room) // all in room except self
connect:连接成功 connecting:正在连接 disconnect:断开连接 connect_failed:连接失败 error:错误发生,并且无法被其他事件类型所处理
message:同服务器端message事件 anything:同服务器端anything事件 reconnect_failed:重连失败 reconnect:成功重连 reconnecting:正在重连 当第一次连接时,事件触发顺序为:connecting->connect;当失去连接时,事件触发顺序为:disconnect->reconnecting(可能进行多次)->connecting->reconnect->connect。