TuringTalk 接口完整文档
服务地址:
http://192.168.1.61:9502(默认端口 9502) 消息格式:WebSocket 均为 JSON;HTTP 按 REST 风格。
一、WebSocket 接口
1.1 连接地址
| 模式 | WS 地址 | 说明 |
|---|---|---|
| 经典 1v1(图灵测试) | ws://host/ws | 匹配、聊天、判定 |
| 公共聊天室 | ws://host/ws/lobby | 聊天、表情、点歌、管理 |
| WhoisAI 多人模式 | ws://host/ws/WhoisAI | 多人混战 |
| 五子棋 | ws://host/ws/gomoku | 对弈 |
| 管理后台 | ws://host/ws/admin | 管理员专属 |
通用消息格式(发送/接收均为 JSON):
json
{ "type": "消息类型", ...参数 }1.2 经典 1v1(/ws,空前缀)
| type | 方向 | 参数 | 说明 |
|---|---|---|---|
join | C→S | nickname, user_id, fingerprint | 加入匹配队列 |
leave | C→S | — | 取消匹配 |
message | C→S | content, user_id, sender, client_msg_id | 发送聊天消息 |
sticker | C→S | filename, user_id, sender, client_msg_id | 发送表情 |
judge | C→S | guess(ai/human) | 做出判定 |
report | C→S | reason, target_num | 举报 |
ping | C→S | t | 心跳 |
in_queue | S→C | — | 已进入匹配队列 |
matched | S→C | room_id, opponent_name, admin_info? | 匹配成功 |
chat_message | S→C | sender, content | 对手消息 |
chat_sticker | S→C | sender, filename | 对手表情 |
can_judge | S→C | — | 双方已发言可判定 |
judgment_required | S→C | judger_name, timeout | 对方已判定 |
game_result | S→C | result, reason, opponent_was_ai, opponent_guess | 对局结果 |
opponent_disconnected | S→C | grace_seconds | 对手断开 |
reconnected | S→C | room_id, opponent_name | 重连成功 |
1.3 公共聊天室(/ws/lobby,前缀 lobby_)
| type | 方向 | 参数 | 说明 |
|---|---|---|---|
lobby_join | C→S | nickname, player_token | 加入聊天室 |
lobby_chat | C→S | content, reply_to_id?, reply_to_name?, reply_to_text? | 发送消息 |
lobby_sticker | C→S | id | 发送表情 |
lobby_revoke | C→S | message_id | 撤回消息(本人3分钟内) |
lobby_report | C→S | message_id, reason | 举报消息 |
lobby_nudge | C→S | target? | 拍一拍 |
lobby_song_search | C→S | keyword | 搜索歌曲 |
lobby_song_request | C→S | song_id, song_name, artist, nickname | 点歌 |
lobby_song_vote | C→S | song_id | 投票晋升 |
lobby_song_remove_vote | C→S | song_id | 投移除票 |
lobby_song_list | C→S | — | 请求歌单 |
lobby_song_current | C→S | — | 请求当前播放 |
lobby_song_finished | C→S | — | 本地播完通知切歌 |
lobby_song_admin_remove | C→S(admin) | song_id | 管理员移除歌曲 |
lobby_admin_verify | C→S | token | 管理员身份验证 |
lobby_ban | C→S(admin) | target_fd, reason | 封禁 |
lobby_mute | C→S(admin) | target_fd, minutes | 禁言 |
lobby_unmute | C→S(admin) | target_fd | 解除禁言 |
lobby_isolate | C→S(admin) | target_fd, minutes | 孤立(消息不广播) |
lobby_unisolate | C→S(admin) | target_fd | 解除孤立 |
lobby_delete | C→S(admin) | message_id | 管理员删除消息 |
lobby_join | S→C | nickname, token | 加入成功 |
lobby_history | S→C | messages[] | 最近100条历史 |
lobby_online_count | S→C | players[] | 在线列表(含 muted/isolated) |
lobby_chat | S→C | id, sender_name, content, reply_to | 消息广播 |
sticker | S→C | id, sticker_id, sticker_url, sender_name | 表情广播 |
lobby_song_list | S→C | playlist[], pool[], playing? | 歌单同步 |
list_update | S→C | playlist[], pool[], playing? | 歌单更新广播 |
lobby_song_requested | S→C | song | 点歌成功 |
lobby_vote_update / lobby_remove_vote_update | S→C | song_id, votes | 投票更新 |
lobby_admin_verified | S→C | is_admin, username, role | 管理员验证结果 |
lobby_system | S→C | text | 系统提示 |
lobby_error | S→C | text | 错误提示 |
lobby_message_deleted | S→C | message_id | 消息被删 |
1.4 WhoisAI 多人模式(/ws/WhoisAI,前缀 WhoisAI_)
| type | 方向 | 参数 | 说明 |
|---|---|---|---|
WhoisAI_match | C→S | nickname, player_token, fp | 加入匹配 |
WhoisAI_cancel_match | C→S | — | 取消匹配 |
WhoisAI_chat | C→S | content, sender | 公屏发言 |
WhoisAI_sticker | C→S | filename, sender | 发表情 |
WhoisAI_vote | C→S | target_id | 投票淘汰 |
WhoisAI_report | C→S | target_id, reason | 举报 |
WhoisAI_connect_ack | C→S | — | 连接确认 |
1.5 五子棋(/ws/gomoku,前缀 gomoku_)
| type | 方向 | 参数 | 说明 |
|---|---|---|---|
gomoku_join | C→S | nickname, fp, player_token | 加入 |
gomoku_create_room | C→S | — | 创建房间 |
gomoku_join_room | C→S | room_id | 加入房间 |
gomoku_place_piece | C→S | x, y | 落子 |
gomoku_chat_message | C→S | content | 房间聊天 |
gomoku_surrender | C→S | — | 认输 |
gomoku_request_rematch | C→S | — | 请求再来一局 |
gomoku_cancel_wait | C→S | — | 取消等待 |
gomoku_timeout | C→S | — | 超时处理 |
1.6 管理后台(/ws/admin,前缀 admin_)
| type | 说明 |
|---|---|
admin_connect | 连接(token 认证) |
admin_sessions | 活跃对局列表 |
admin_spectate / admin_unspectate | 观战/停止观战 |
admin_reports / admin_report_detail / admin_mark_reviewed | 举报审核 |
admin_sticker_list / admin_sticker_add / admin_sticker_delete | 表情管理 |
admin_sticker_upload | 上传表情 |
admin_sticker_review_list / admin_sticker_approve / admin_sticker_reject | 表情审核 |
admin_lobby_players / admin_lobby_messages / admin_lobby_delete | 聊天室管理 |
admin_lobby_batch_ban / admin_lobby_batch_delete | 批量操作 |
admin_lobby_rate_limit | 发言限速 |
admin_lobby_announce | 发送警告 |
admin_user_search / admin_user_ban / admin_user_unban | 用户管理 |
admin_user_list_banned | 封禁列表 |
admin_broadcast / admin_room_broadcast | 全服/房间广播 |
admin_add / admin_list / admin_delete / admin_change_password | 管理员管理 |
admin_my_logs / admin_all_logs | 审计日志 |
admin_ban_player / admin_ban_by_info | 封禁 |
二、HTTP 接口
2.1 GET 接口
| 路径 | 说明 |
|---|---|
/ | 首页(1v1 游戏) |
/lobby | 聊天室页面 |
/WhoisAI | WhoisAI 页面 |
/gomoku | 五子棋页面 |
/api/generate-player-id | 生成玩家 ID |
/api/player-stats | 玩家数据统计 |
/api/chat-history | 对局记录列表 |
/api/chat-history/detail | 对局记录详情 |
/api/player-profile | 玩家资料 |
/api/player-collections | 玩家收藏 |
/api/collection/detail | 收藏详情 |
/api/collection/by-token | 按 token 查收藏 |
/api/player-messages | 我的留言 |
/api/sticker/list | 表情列表 |
/player/{nickname} | 玩家主页 |
/collection/{token} | 公开收藏页 |
2.2 POST 接口
| 路径 | 说明 |
|---|---|
/api/upload-userdata | 上传用户数据 |
/api/player-message/hide | 隐藏留言 |
/api/player-message/settings | 留言设置 |
/api/chat-history/collect | 收藏记录 |
/api/collection/like | 点赞收藏 |
/api/sticker/upload | 上传表情 |
/api/sticker/delete | 删除表情 |
2.3 管理后台 HTTP
| 路径 | 说明 |
|---|---|
GET /admin | 管理后台页面 |
POST /admin/api/login | 管理员登录(账号 admin / admin123456) |
2.4 静态资源
/script.js、/style.css、/shared.js、/lobby/lobby.js、/lobby/lobby.css、 /lobby/vendor/*(marked、purify、fp、plyr)、/vendor/*(html2canvas、fp)、 /admin/*、/whoisai/*、/gomoku/*、/favicon.svg 等。
三、通用说明
- 身份:玩家通过
player_token或player_id+ 密码验证;聊天室同时用nickname - 管理员:登录
/admin获取 token,聊天室通过lobby_admin_verify验证 - 心跳:
ping/pong,超时自动清理 - 权限:管理员操作(ban/mute/isolate/delete 等)服务端强制校验
isAdmin - 封禁:IP + 指纹 + player_id 三维,所有模式接入检查
- 防刷:同 IP/指纹最多 3 账号,创建频率 10 分钟限 1 次