命名空间: /chatroom | 连接地址: wss://ws.lineage.chajiapu.com.cn/chatroom
wss://ws.lineage.chajiapu.com.cn/chatroomquery.token 或 auth.token(JWT)// 示例
const socket = io('wss://ws.lineage.chajiapu.com.cn/chatroom', {
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', {
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 }) => { })
| type | 说明 |
|---|---|
lineage:member:join | 用户申请加入血缘时,通知该血缘相关管理员 |
lineage:member:confirm | 用户加入血缘申请处理完成后,通知申请人处理结果 |
socket.on('notice', ({ type, data }) => {
// type: 'lineage:member:join'
// data: {
// lineage_id, // 血缘 ID
// user_info, // 申请加入的用户信息
// }
// type: 'lineage:member:confirm'
// data: {
// lineage_id, // 血缘 ID
// role, // 加入后的角色
// status, // 审核状态
// lineage_surname, // 血缘姓氏
// }
})