我遵循了本教程:http://www.stephendiehl.com/?p=309描述了如何运行gevent服务器,在nginx前端后面为Django提供套接字。
正如本教程所述,除非使用tcp代理模块,否则Nginx不支持websocket。根据我的理解,这个代理模块不支持使用相同的端口进行套接字和经典服务,配置如下:
nginx监听端口80
nginx tcp代理监听端口7000
所有东西都被转发到8000端口。
问题:结果的socketio请求不包括包含会话id的django,因此我在django视图中没有关于请求用户的信息。
我想这是因为请求被发送到另一个端口(7000),导致浏览器将请求识别为跨域的请求?
将django cookie包含到请求中的最干净的方法是什么?
发布于 2012-02-07 15:48:43
this question中的大多数答案似乎表明端口并不重要。
此外,也检查并认为WebSockets被认为是HTTP,所以HTTPOnly cookie仍然应该发送。
SocketIO似乎在使用自定义会话管理器来跟踪用户。也许试着把这联系起来?
https://stackoverflow.com/questions/9152529
复制相似问题