API 文档
请查看客户端和 API 文档以作参考
警告: 使用与以下版本兼容的客户端版本 Socket.IO 服务器 v4。早期版本 可能不受支持并且可能无法 正常工作
JavaScript(适用于微信小程序)
并非所有客户端 API 都能在服务器实现中使用,反之亦然。
兼容性矩阵
连接
✅ 支持
io(url, opts)
IO.socket(url)
sio.connect(url)
socket.connect()
socket.connect()
socket.connect()
socket.Connect()
client->Connect()
socket.Connect()
标准连接方法
断开连接
✅ 支持
socket.disconnect()
socket.disconnect()
sio.disconnect()
socket.disconnect()
socket.disconnect()
socket.disconnect()
socket.Disconnect()
client->Disconnect()
socket.Disconnect()
客户端与服务器断开连接
事件监听
✅ 支持
socket.on(event, cb)
socket.on(EVENT, listener)
@sio.on(event)
socket.on(event, cb)
socket.on(event, cb)
socket.on(event, cb)
socket.On(event, cb)
client->On(event, cb)
socket.On(event, cb)
标准事件处理器
一次性监听器
✅ 支持
socket.once(event, cb)
socket.once(EVENT, listener)
@sio.once(event)
socket.once(event, cb)
socket.once(event, cb)
socket.once(event, cb)
socket.Once(event, cb)
client->Once(event, cb)
socket.Once(event, cb)
某些客户端没有内置的 once
移除监听器
✅ 支持
socket.off() / socket.removeListener()
socket.off(EVENT)
sio.off(event)
socket.off(event)
socket.off(event)
socket.off(event)
socket.Off(event)
client->Off(event)
socket.Off(event)
大多数客户端支持删除监听器的操作
触发事件(Emit)
✅ 支持
socket.emit(event, …args)
socket.emit(event, …args)
sio.emit(event, data)
socket.emit(event, data)
socket.emit(event, data)
socket.emit(event, data)
socket.Emit(event, data)
client->Emit(event, data)
socket.Emit(event, data)
标准触发
带确认(ack)的触发
✅ 支持
socket.emit(event, …, callback) / emitWithAck()
socket.emit(event, …args, AckCallback)
sio.call(event, data) / await sio.emit(event, data, callback)
socket.emit(event, data, cb)
socket.emit(event, data, cb)
socket.emit(event, data, cb)
socket.Emit(event, data, cb)
client->Emit(event, data, cb)
socket.Emit(event, data, cb)
对 ack 的支持各不相同
命名空间 API
✅ 支持
io(url/ns) / socket.nsp
socket.of("/ns")
sio.connect(url, namespaces=["/ns"])
socket.of("/ns")
socket.of("/ns")
socket.of("/ns")
socket.Of("/ns")
client->Of("/ns")
socket.Of("/ns")
大多数多命名空间客户端支持
查询 / 验证(Auth)
⚠️ 有限支持
io(url, { auth, query })
IO.Options.query/setAuth(Map<String,Object>)
sio.connect(url, auth={…})
socket.setAuth(data)
socket.setAuth(data)
socket.setAuth(data)
socket.SetAuth(data)
client->SetAuth(data)
socket.SetAuth(data)
握手参数会传递过去
重连控制
⚠️ 部分支持
由客户端选项管理
socket.io().reconnection(true/false)
sio.reconnect() 或由以下处理 sio.connect()
取决于客户端库
取决于客户端库
取决于客户端库
取决于客户端库
取决于客户端库
取决于客户端库
客户端自动重连逻辑
不可靠(volatile)触发
⚠️ 有限支持
socket.volatile.emit()
仅 JS 支持 / Java 客户端无标准实现
⚠️ 罕见 / 非标准
各不相同
各不相同
各不相同
各不相同
各不相同
各不相同
未被一致实现
压缩标志
⚠️ 内部使用
socket.compress()
非标准
非标准
非标准
各不相同
各不相同
各不相同
各不相同
各不相同
通常为内部实现
客户端中间件(use())
❌ 否
仅 JS
❌
❌
❌
❌
❌
❌
❌
❌
中间件 API 主要仅在 JS 中可用
引擎/管理器 内部实现
❌ 否
socket.io / 管理器
内部
内部
内部
内部
内部
内部
内部
内部
客户端内部实现未在服务器端进行镜像
最后更新于
这有帮助吗?