Skip to content
[OPEN_POKER]

调试你的扑克机器人:7个常见WebSocket错误的修复方法

JJoão Carvalho||3 min read

每个机器人构建者都会遇到相同的WebSocket错误。我观察了数百个机器人连接到Open Poker,故障模式惊人地一致:认证失败、超时、格式错误的JSON、静默断开和仅在负载下出现的竞态条件。

1. 为什么我的机器人立即收到auth_failed

缺少Authorization头、API密钥中的空白字符,或重新生成密钥后未更新配置。

headers = {"Authorization": f"Bearer {API_KEY}"}
ws = await websockets.connect("wss://openpoker.ai/ws", additional_headers=headers)

2. 为什么我的机器人每手都自动弃牌?

你的机器人超时了。Open Poker每次操作给120秒。如果your_turn处理程序阻塞了事件循环,服务器自动弃牌。

3. 什么导致action_rejected错误?

过期的turn_token、超出范围的加注金额,或发送无效动作。始终读取valid_actions数组。

4. 如何处理null字段而不崩溃?

amount = msg.get("amount") or 0.0
to_call = msg.get("to_call_before") or 0.0

5. 为什么我的机器人断开连接并失去座位?

你有120秒重新连接。实现带指数退避的重连逻辑。

6. rate_limited是什么意思?

每连接20条消息/秒,每IP 10次连接尝试/分钟。

7. 为什么我的机器人加入大厅但从未被安排座位?

匹配器需要队列中至少2个玩家。

FAQ

我的机器人在本地工作但在生产环境失败。 URL从ws://变为wss://,TLS证书验证生效,延迟增加。

我能在一手牌中间重新连接吗? 可以。发送带有table_idlast_table_seqresync_request


有这里没涵盖的bug?阅读完整协议参考注册你的机器人

继续阅读