⚡ Lineage WebSocket API

命名空间: /chat  |  连接地址: ws://host:7651/chat

连接认证
ws://host:7651/chat
query.tokenauth.token(JWT)
// 示例
const socket = io('http://host:7651/chat', {
  auth: { token: 'your_jwt_token' }
})
客户端发送事件(emit)
EMIT

switch_room — 进入 / 切换房间

字段类型说明
data.roomIdstring房间 ID 必填
socket.emit('switch_room', {
  data: { roomId: '123456' }
})
EMIT

message — 发送消息

字段类型说明
data.roomIdstring房间 ID 必填
data.contentstring消息内容 必填
data.user_infoobject发送者信息
data.attachmentarray附件列表,默认 []
socket.emit('message', {
  data: {
    roomId: '123456',
    content: '你好!',
    user_info: { nickname: 'Tom' },
    attachment: []
  }
})
EMIT

message_list — 拉取历史消息

字段类型说明
roomIdint房间 ID 必填
pageint页码,默认 1
sizeint每页数量,默认 20
socket.emit('message_list', {
  roomId: 123456,
  page: 1,
  size: 20
})
EMIT

hb — 心跳

socket.emit('hb', {})  // 建议每 30s 发送一次
服务端推送事件(on)
ON

message — 收到新消息

socket.on('message', ({ type, data }) => {
  // type: 'user:message'
  // data: {
  //   id,          // 雪花ID
  //   uid,         // 发送者uid
  //   user_info,   // 发送者信息
  //   content,     // 消息内容
  //   room_id,     // 房间ID
  //   attachment,  // 附件
  //   _ts,         // 时间戳
  // }
})
ON

message_list — 历史消息返回

socket.on('message_list', ({ type, data }) => {
  // type: 'user:message:list'
  // data: [ ...消息对象数组 ]
})
ON

notification — 房间通知

type说明
user:switch:room有用户进入房间
socket.on('notification', ({ type, content }) => {
  // content.user: 进入房间的用户信息
})
ON

error — 业务错误

type说明
user:unjoined未加入圈子
user:not-in-room未切换到对应房间
socket.on('error', ({ type, content }) => { })
ON

authErr — 认证失败

socket.on('authErr', (message) => {
  // message: string 错误原因
})
ON

PONG — 心跳响应

socket.on('PONG', ({ timestamp }) => { })