我想在Macbook上的移动Safari和nodejs + socket.io之间建立连接。
当我从笔记本电脑上拨打localhost:8080时,一切正常。控制台说客户端已连接,我的小网站显示。
当我使用10.0.1.5:8080在我的移动浏览器上调用它时,也会显示该网站,但我的socket.io不会将移动浏览器(iPhone)识别为客户端,并且控制台板上没有任何反应。
问题出在哪里?
答案 0 :(得分:5)
我在SO上发现这篇文章,可能可以帮到你。 why does my nodejs socket.io app not work on ios6
Localhost是本机的本地。你的IP应该使用IP地址 或域名:
类似于:io.connect('192.168.1.110');要么 io.connect( 'test.myapp.com');
答案 1 :(得分:1)
WebSockets不能通过蜂窝网络工作,因为它们不会被http代理转发。
可能的解决方法是将WebSocket服务器端口设置为443(https)以转发所有内容(因为https已加密,代理具有转发它以支持https)。
要查看以这种方式解决此问题的真实世界示例,请结帐nearby。
请记住,这需要使用两个http服务器:
否则,您始终必须使用网址中的特定端口,这在生产中通常不是首选。