命名空间: /chat | 连接地址: ws://host:7651/chat
ws://host:7651/chatquery.token 或 auth.token(JWT)// 示例
const socket = io('http://host:7651/chat', {
auth: { token: 'your_jwt_token' }
})
| 字段 | 类型 | 说明 |
|---|---|---|
data.roomId | string | 房间 ID 必填 |
socket.emit('switch_room', {
data: { roomId: '123456' }
})
| 字段 | 类型 | 说明 |
|---|---|---|
data.roomId | string | 房间 ID 必填 |
data.content | string | 消息内容 必填 |
data.user_info | object | 发送者信息 |
data.attachment | array | 附件列表,默认 [] |
socket.emit('message', {
data: {
roomId: '123456',
content: '你好!',
user_info: { nickname: 'Tom' },
attachment: []
}
})
| 字段 | 类型 | 说明 |
|---|---|---|
roomId | int | 房间 ID 必填 |
page | int | 页码,默认 1 |
size | int | 每页数量,默认 20 |
socket.emit('message_list', {
roomId: 123456,
page: 1,
size: 20
})
socket.emit('hb', {}) // 建议每 30s 发送一次
socket.on('message', ({ type, data }) => {
// type: 'user:message'
// data: {
// id, // 雪花ID
// uid, // 发送者uid
// user_info, // 发送者信息
// content, // 消息内容
// room_id, // 房间ID
// attachment, // 附件
// _ts, // 时间戳
// }
})
socket.on('message_list', ({ type, data }) => {
// type: 'user:message:list'
// data: [ ...消息对象数组 ]
})
| type | 说明 |
|---|---|
user:switch:room | 有用户进入房间 |
socket.on('notification', ({ type, content }) => {
// content.user: 进入房间的用户信息
})
| type | 说明 |
|---|---|
user:unjoined | 未加入圈子 |
user:not-in-room | 未切换到对应房间 |
socket.on('error', ({ type, content }) => { })
socket.on('authErr', (message) => {
// message: string 错误原因
})
socket.on('PONG', ({ timestamp }) => { })