2017-06-06 21 views
0

現在、私はCordovaで作成したモバイルアプリを開発中です。ソケットを使用して私たちの他のデバイスに接続して通信します。現在、このpluginのchrome.sockets.tcpを使用しています。JavaScriptでWebSocketを使用中にエラーが発生しました

これはうまく接続しますが、Android搭載端末では切断に問題があります。切断が20〜30秒から10〜15分の間に発生する可能性があるため、タイムアウトの問題ではありません。私は毎秒2から3の要求を作成しているデータをダウンロードしている間も切断されます。何が起こったのかを示すために、エラーはなく、ログには何もありません。 chrome.sockets.tcpには接続ステータスレポートの方法があまりないので、なぜ接続が切断されたのかわかります。

私はJavaScriptのWebSocketに切り替えることで、切断問題の解決に役立つかどうかを確認しようとしました。少なくとも、より多くの接続ステータス情報を提供するようです。しかし、私はそれを接続することはできません。私はError during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSEを得る。ここに私のコードは次のとおりです。

var socket = new WebSocket("ws://" + IP + ":" + port); 
socket.protocol = "soap"; 

socket.onclose = function(event) { 
    console.log(event); 
}; 
socket.onerror = function(event) { 
    console.log(event); 
}; 
socket.onmessage = function(event) { 
    console.log(event); 
}; 
socket.onopen = function(event) { 
    console.log(event); 
}; 

私はいくつかの研究を行ってきた、私がsocket.protocol = "aProtocol";を使用してプロトコルを設定する必要があるかもしれませんが、私は、プロトコルを設定した後、ブレークポイントsocket.protocolを設定しているようですがさえ「」まだですsocket.protocol = "soap";に電話した後。また、コンストラクタを使用してプロトコルを設定することもできません。

chrome.sockets.tcpがAndroidではなくiOSでこのような接続解除の問題がある理由、またはJavaScriptのネイティブWebSocketを使用して接続できない理由を教えていただけますか?どんな助けでも大歓迎です。

答えて

0

は、それが私たちのソケットサーバーは、TCPソケット・サーバであることによるものであったが判明します。 TCPとWebSocketは、接続を行うためのプロセスが全く異なるため、全く連携しません。だから、代わりにTCPソケットのCordovaプラグインを作成してしまいました。

0

はコンストラクタでサブプロトコルを渡して試してみてください。

var socket = new WebSocket("ws://" + SSID + ":" + port, "soap"); 
+0

私もそれを試しました。 –

関連する問題