5

socket.io を使用するアプリケーションがあり、socket.emit()モバイル chrome (Android および iOS) から動作していません。socket.emit()がブラウザで実行されていることがわかります。しかし、サーバー側の console.log ステートメントsocket.on()が実行されていないため、メッセージが届いていないと思います。コンソールにもエラーは表示されません。

興味深いことに、すべてがシークレット モードで正常に動作し、さらに Safari などの他のモバイル ブラウザーのすべてのモードでも動作します。

解決策、またはデバッグのヘルプが役立ちます。

編集:

クライアント側コード

$(document).ready(function(){
    socket = io();
    $(".check").on("submit", function(event){
        event.preventDefault();
        ga('send','event','evt','evt123');
        socket.emit('checkRoom', { rId: "12345", pId: "johndoe"});
    });
});

サーバー側コード

io.on('connection', function(socket) {
    console.log('a user connected');

    socket.on('check',function(e){
        console.log('Entered check');
        socket.emit('check','server message');
    });
});

EDIT2:

socket.io-1.3.5.jsクライアント側で(デフォルトを使用する代わりに)ファイルを手動で指定する/socket.io/socket.io.jsと、コンソールに次のエラーが表示されるようになりました。

WebSocket connection to 'ws://mydomain.com/socket.io/?EIO=3&transport=websocket&sid=wr8UpsT45lrWHtpMACJs' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
4

1 に答える 1