我目前正在为我的应用程序开发一个即时消息功能(最好是跨平台的移动应用程序/网络应用程序),并且我无法解决我的问题。 到目前为止,我已经能够在本地工作,使用带有socket.io,django和redis的Node.js服务器,遵循大多数在线教程的建议。 我现在的步骤在于使用亚马逊AWS将所有内容放入云中。我的Django服务器已启动并正在运行,我创建了一个新的单独的Node.js服务器,并且使用Elasticache处理Redis部分。我启动了不同的部分,并没有出现错误。 但是,每当我尝试使用网络上我的短信功能,我不断收到一个错误500:如何在使用socket.io与Node.js服务器通信时使Django传递cookie?
握手错误
然后我用控制台检查请求头,我观察到的cookie不是在那里,相反,当我在本地主机。我知道这是必要的授权握手,所以我想这就是我的错误来自哪里..
此外,我也检查了cookie确实存在,他们只是没有设置在请求头。
我的问题是:我怎样才能确保Django或套接字客户端(不知道谁负责这里..)把cookie放在标头?
我的一个想法是,也许我应该把所有的东西放在同一台服务器上,不同的端口,而不是2个独立的服务器?与描述如何使其在本地工作的教程相比,关于该特定体系结构问题的文档惊人地稀少。
我希望我能够准确地描述问题! :)
重要说明:我使用的是socket.io v0.9.1-1,只有一个兼容钛移动应用程序。
谢谢你的帮助!
我得到它的工作在移动和:我被迫插座使用XHR轮询。我的猜测是,Nginx和websockets还不是很好的朋友,并且没有关于配置Nginx的一些知识,所以在Nginx后面建立一个websocket连接是一个痛苦。所以我添加了'io.set('transports',['xhr-polling']);'服务器端,以防止发生websocket错误。 – ChIngalls