Hello
1. cosocket 对象是不能跨请求的,"bad request" 说的就是跨请求使用了,所以,有点怀疑,你代码实现的问题
2. ngx.ctx 是为了一个请求内,不同执行 phase 之间的数据共享,但是并不建议共享 cosocket 对象(虽然看着应该是可行的)
3. 实际上应该也并不需要跨 phase 共享 cosocket 对象,感觉你只要本请求,当前 phase 内共享即可
那么,我有个小建议:
每请求自己创建一个 ctx -- 仅仅为一个普通的 table,这个 ctx 在你的所有逻辑入口都带上(我想在你的框架那部分应该很容易做到)
你想共享什么数据,都可以放在这个 ctx 里,这样既足够高效,又足够灵活