我目前正在尝试使用工作者 socketio.sgunicorn.GeventSocketIOWorker 使用 gunicorn 服务器在多个工作者之间扩展gevent - socketio。我在存在 websockets 时使用它,否则我会强制 XHR 轮询(对于 IE 等)。
XHR-polling 需要一个会话来跟踪以下民意调查,但是一旦我从一个到两个或更多工作人员,请求开始在它们之间传播,这意味着状态丢失并且一切都崩溃了。
我认为以下代码行是相关的: https://github.com/abourget/gevent-socketio/blob/master/socketio/handler.py#L104-106 我想我需要一些其他存储引擎,例如redis我正在使用常规的 pubsub-actions,但这在实际库的深处。
所以我的问题是如何在我的应用程序中全局从内存中的会话存储转到另一个后端引擎(它是否优雅地覆盖了上面链接中的会话代码?)而无需修改库本身?类似于 php.ini 中的 PHP 会话指令。我想可以说这是一个非常通用的python问题,但我很难找到相关信息,而且我也不确定它是否适用于这个库。
或者,我如何在不同的工作人员和服务器之间使用 gevent-socketio 的 xhr-polling 传输(没有粘性)?
谢谢!