菜鸟教程小白 发表于 2022-12-12 16:16:23

android - Socket.io 适用于桌面 safari 和 chrome,但不适用于移动设备


                                            <p><p>我正在使用 socket.io 在服务器和 html5 客户端之间建立通信,并且在桌面和 iPhone 模拟器上的 safari 上一切正常。当我尝试从任何 iOS 甚至 android 设备运行客户端时,客户端无法建立连接。</p>

<p>使用 web 检查器,我无法在我的 ios7 设备上输出控制台错误,但设法获取资源列表,其中包含 XHR 下的项目,尝试连接到服务器 IP 地址并在大约 2 到 3 分钟后失败(转红色)</p>

<p>我的 iOS 设备是 iOS 7.03 (iPhone 4),我使用的是 node v0.10.21 和 socket.io v0.9.16
我也在使用 ip 地址进行连接,所以我不确定是否有相同的域限制适用</p>

<p>以下是来自客户端的相关部分:</p>

<pre><code>&lt;script src=&#34;http://xx.xx.xx.xx:port/socket.io/socket.io.js&#34;&gt;&lt;/script&gt;
var socket =io.connect(&#34;http://xx.xx.xx.xx:port&#34;);

socket.on(&#39;connect&#39;, function() {
    console.log(&#34;connected&#34;);
}

socket.on(&#39;disconnect&#39;, function() {
    console.log(&#34;disconencted&#34;);
}

socket.on(&#39;message&#39;, function(data) {
    console.log(&#34;rcved:&#34;+ data*emphasized text*);
}
</code></pre>

<p>服务器</p>

<pre><code>var io = require(&#39;socket.io&#39;).listen(12321).set(&#39;log level&#39;, 0);
var ConnectionHandler = require(&#39;./handler.js&#39;);


io.sockets.on(&#39;connection&#39;, function (socket) {
new ConnectionHandler(socket);
});
</code></pre>

<p>我还需要指出,当我在服务器端启用完整日志记录时,不会尝试从移动设备建立连接,而只是桌面设备和 iOS 模拟器。</p>

<p>感谢任何有关修复或如何寻求解决此问题的建议</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>原来是防火墙问题:|</p>

<p>台式电脑在 VPN 上,手机没有
这解释了这个问题</p>

<p>我觉得很愚蠢,但我会把它留在这里,以防它帮助别人检查同样的问题</p></p>
                                   
                                                <p style="font-size: 20px;">关于android - Socket.io 适用于桌面 safari 和 chrome,但不适用于移动设备,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19887397/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19887397/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: android - Socket.io 适用于桌面 safari 和 chrome,但不适用于移动设备