socket.io没有连接到移动浏览器

时间:2014-01-02 13:28:28

标签: macos node.js socket.io iphone-web-app

我想在Macbook上的移动Safari和nodejs + socket.io之间建立连接。

当我从笔记本电脑上拨打localhost:8080时,一切正常。控制台说客户端已连接,我的小网站显示。

当我使用10.0.1.5:8080在我的移动浏览器上调用它时,也会显示该网站,但我的socket.io不会将移动浏览器(iPhone)识别为客户端,并且控制台板上没有任何反应。

问题出在哪里?

2 个答案:

答案 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服务器:

  1. 为您提供移动应用程序(在端口80上)
  2. 在(端口443)上提供网络套接字
  3. 否则,您始终必须使用网址中的特定端口,这在生产中通常不是首选。