WebSocket 事件
RushChat 使用 WebSocket 实现实时通信。
WebSocket 事件概览
IyBXZWJTb2NrZXQg5LqL5Lu257O757ufCiMjIOi/nuaOpQotIOi/nuaOpeWcsOWdgAogIC0gd3M6Ly9sb2NhbGhvc3Q6NTAwMS93cwogIC0gd3NzOi8vZG9tYWluLmNvbS93cwotIOi/nuaOpeaWueW8jwogIC0g6Ieq5Yqo6L+e5o6lCiAgLSDoh6rliqjph43ov54KIyMg5a6i5oi356uvIOKGkiDmnI3liqHlmagKLSDnlKjmiLfkuovku7YKICAtIHVzZXI6am9pbgogIC0gdXNlcjpsb2dpbgotIOa2iOaBr+S6i+S7tgogIC0gbWVzc2FnZTpzZW5kCiAgLSB0eXBpbmc6c3RhcnQKICAtIHR5cGluZzpzdG9wCi0g6aKR6YGT5LqL5Lu2CiAgLSBjaGFubmVsOmpvaW4KICAtIGNoYW5uZWw6Y3JlYXRlCi0g566h55CG5ZGY5LqL5Lu2CiAgLSBhZG1pbjpraWNrCiAgLSBhZG1pbjptdXRlCiAgLSBhZG1pbjphcHBvaW50Ci0g6K+t6Z+z6IGK5aSpCiAgLSB2b2ljZTpqb2luCiAgLSB2b2ljZTpsZWF2ZQogIC0gdm9pY2U6c2lnbmFsCiAgLSB2b2ljZTptdXRlCiAgLSB2b2ljZTpraWNrCiAgLSB2b2ljZTppbnZpdGUKIyMg5pyN5Yqh5ZmoIOKGkiDlrqLmiLfnq68KLSDnlKjmiLfpgJrnn6UKICAtIHVzZXI6am9pbmVkCiAgLSB1c2VyOmxlZnQKICAtIHVzZXI6bGlzdAotIOa2iOaBr+mAmuefpQogIC0gbWVzc2FnZTpyZWNlaXZlCiAgLSB0eXBpbmc6c3RhcnQKICAtIHR5cGluZzpzdG9wCi0g6aKR6YGT6YCa55+lCiAgLSBjaGFubmVsOmpvaW5lZAogIC0gY2hhbm5lbDpsaXN0Ci0g566h55CG5ZGY6YCa55+lCiAgLSBhZG1pbjphY3Rpb24KICAtIGFkbWluOmluZm8KLSDplJnor6/pgJrnn6UKICAtIGVycm9y
连接
连接地址
或使用 HTTPS:
客户端 → 服务器事件
user:join
用户加入聊天。
{
"event": "user:join",
"data": {
"username": "string"
}
}
user:login
用户登录。
{
"event": "user:login",
"data": {
"username": "string",
"password": "string"
}
}
message:send
发送消息。
{
"event": "message:send",
"data": {
"channel_id": 1,
"message": "string",
"message_type": "text|image|system"
}
}
typing:start
用户开始输入。
{
"event": "typing:start",
"data": {
"channel_id": 1
}
}
typing:stop
用户停止输入。
{
"event": "typing:stop",
"data": {
"channel_id": 1
}
}
channel:join
加入频道。
{
"event": "channel:join",
"data": {
"channel_id": 1,
"password": "string (optional)"
}
}
channel:create
创建频道。
{
"event": "channel:create",
"data": {
"name": "string",
"is_private": true,
"password": "string (optional)"
}
}
admin:kick
管理员踢人。
{
"event": "admin:kick",
"data": {
"target_username": "string"
}
}
admin:mute
管理员禁言。
{
"event": "admin:mute",
"data": {
"target_username": "string"
}
}
admin:appoint
管理员任命。
{
"event": "admin:appoint",
"data": {
"target_username": "string",
"admin_level": "A|B|C"
}
}
服务器 → 客户端事件
user:joined
通知用户加入。
{
"event": "user:joined",
"data": {
"username": "string"
}
}
user:left
通知用户离开。
{
"event": "user:left",
"data": {
"username": "string"
}
}
user:list
发送在线用户列表。
{
"event": "user:list",
"data": {
"users": ["username1", "username2"]
}
}
message:receive
接收新消息。
{
"event": "message:receive",
"data": {
"id": 1,
"channel_id": 1,
"username": "string",
"message": "string",
"message_type": "text|image|system",
"created_at": "2024-01-01T00:00:00Z"
}
}
typing:start
有人正在输入。
{
"event": "typing:start",
"data": {
"username": "string",
"channel_id": 1
}
}
typing:stop
有人停止输入。
{
"event": "typing:stop",
"data": {
"username": "string",
"channel_id": 1
}
}
channel:joined
加入频道成功。
{
"event": "channel:joined",
"data": {
"channel_id": 1,
"channel_name": "string"
}
}
channel:list
频道列表更新。
{
"event": "channel:list",
"data": {
"channels": [
{
"id": 1,
"name": "string",
"is_private": false
}
]
}
}
admin:action
管理员操作通知。
{
"event": "admin:action",
"data": {
"action_type": "kick|mute|appoint",
"admin_username": "string",
"target_username": "string"
}
}
error
错误消息。
{
"event": "error",
"data": {
"message": "string"
}
}
连接管理
自动重连
客户端会自动处理连接断开和重连:
心跳检测
服务器会定期发送心跳包,保持连接活跃。
相关文档