3

サーバーとhtml5クライアント間の通信を確立するためにsocket.ioを使用していますが、すべてがiPhoneシミュレーターのデスクトップとサファリで正常に動作しています。iOSまたはAndroidデバイスから実行しようとすると、クライアントは接続を確立できません。

Web インスペクタを使用して、ios7 デバイスでコンソール エラーを出力できませんでしたが、サーバーの IP アドレスに接続しようとして XHR の下にあるアイテムを含むリソースのリストを取得することができ、約 2 ~ 3 分後に失敗しました (赤くなります)。

私の iOS デバイスは iOS 7.03 (iPhone 4) で、node v0.10.21 と socket.io v0.9.16 を使用しています。IP アドレスも使用して接続しているため、同じドメイン制限があるかどうかはわかりません。該当する

以下は、クライアントからの関連部分です。

<script src="http://xx.xx.xx.xx:port/socket.io/socket.io.js"></script>
var socket =  io.connect("http://xx.xx.xx.xx:port");

socket.on('connect', function() {
    console.log("connected");
}

socket.on('disconnect', function() {
    console.log("disconencted");
}

socket.on('message', function(data) {
    console.log("rcved:"+ data*emphasized text*);
}

サーバ

var io = require('socket.io').listen(12321).set('log level', 0);
var ConnectionHandler = require('./handler.js');


io.sockets.on('connection', function (socket) {
new ConnectionHandler(socket);
});

また、サーバー側で完全なログ記録を有効にすると、モバイル デバイスからの接続は試みられず、デスクトップ デバイスと iOS シミュレーターだけであることに注意してください。

修正に関する提案や、この問題の解決策を追求する方法を教えてください。

4

1 に答える 1