问题
之前写的即时通信部分上传到服务器上之后,发现 WebSocket
连接不上了。
妈蛋=。=
于是百度了半天,看到一个方法是配置 Apache
,增加 mod_python
、mod_pywebsocket
扩展巴拉巴拉。
mod_python
在我最开始配置 Apache
支持 PHP
和 Pyhton
的时候就发现好像不太好用,所以就没有用。
这次简单地尝试了一下还是有问题,所以就算了。
问题分析
可能因为我是通过 apache
代理,将域名解析到指定端口来实现 tornado
应用的上线,而 WebSocket
在握手的时候请求直接发送到apache
。apache
代理的时候没法将WebSocket
握手请求传递给 tornado
应用,结果就是握手失败
解决方案:
将 html
文件里的ws
服务器地址修改为服务器 IP
地址,越过 apache
代理的部分,直接跟 tornado
应用握手。
就是这样:
xxx.html
ws = new WebSocket("ws://xxx.xxx.xx.xxx:8008/soc")
ws = new WebSocket("ws://www.mysite.com/soc")
以上。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。