私はWebSocket接続をクライアントに接続していますが、そこには40秒程度あります。理想的にはそれはいつまでも開いているはずです。Websocketを処理する正しい方法
クライアントは継続的にサーバーにデータを送信し、その逆もあります。
は、今のところ私はこのシーケンスを使用しています:
var socket;
function senddata(data)
{
if (!socket)
{
socket = new WebSocket(url);
socket.onopen = function (evt) {
socket.send(data);
socket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
port.postMessage(obj);
}
socket.oneerror = function (evt) {
socket.close();
socket = null;
}
socket.onclose = function(evt){
socket = null;
}
}
}
else
{
socket.send(data);
}
}
は明らかに現在のロジックに従って、エラーの場合には、現在のリクエストデータがまったく送信されない場合があります。
これは、websocketがまだ接続状態になっているというエラーを示すことがあります。この接続は、ネットワークの問題により頻繁に切断されます。要するに、それは完全にうまく動作しません。
私はより良いデザインを読んだ:How to wait for a WebSocket's readyState to changeしかし、私が扱う必要があるすべてのケースをカバーしていません。
また、私はこれについてgoogledしましたが、これに対して正しい手順を得ることができませんでした。
接続切断などの問題をうまく処理するWebsocketを介して定期的なデータを送信する正しい方法は何ですか?
感謝を助けるだろうと思います。 – user5858