feat: 添加 Python→Go 全双工回调支持(call_go)

- 新增 WithHandlers 选项,通过反射将 Go 结构体方法暴露给 Python
- 新增 callback/callback_result 消息类型,支持 Python 在处理中回调 Go
- client 侧新增 readResult,内联处理 callback,复用同一连接避免死锁
- Python 侧新增 call_go[T]() 泛型调用,支持 dataclass 自动构造
- 注入 GOBRIDGE_WORKER_ID/WORKER_COUNT 环境变量,支持多 worker 初始化分工
- 新增示例演示 Go→Python→Go→Python 四层全双工链路
- Python 包版本升至 0.1.1
This commit is contained in:
2026-04-14 13:06:50 +08:00
parent 07e9239ac5
commit b390effd8e
8 changed files with 490 additions and 54 deletions

View File

@@ -4,12 +4,14 @@ import "encoding/json"
// 消息类型常量
const (
TypeCall = "call" // Go → Python: 调用请求
TypeResult = "result" // Python → Go: 调用结果
TypeError = "error" // 双向: 错误响应
TypeChunk = "chunk" // 双向: 流数据块
TypeEnd = "end" // 双向: 流结束标记
TypeCancel = "cancel" // Go → Python: 取消正在执行的调用ctx 取消时发送)
TypeCall = "call" // Go → Python: 调用请求
TypeResult = "result" // Python → Go: 调用结果
TypeError = "error" // 双向: 错误响应
TypeChunk = "chunk" // 双向: 流数据块
TypeEnd = "end" // 双向: 流结束标记
TypeCancel = "cancel" // Go → Python: 取消正在执行的调用ctx 取消时发送)
TypeCallback = "callback" // Python → Go: 调用 Go 注册方法
TypeCallbackResult = "callback_result" // Go → Python: Go 方法调用结果
)
// Message 是 Go 与 Python 之间传输的消息结构