1. ホーム
  2. javascript

[解決済み] Websocket onerror - エラーメッセージを読むには?

2023-04-11 16:43:15

質問

私はここしばらくの間、ブラウザベースのマルチプレイヤー ゲームを開発しており、さまざまな環境 (クライアントのオフィス、公共の無線 LAN など) で異なるポートのアクセス性をテストしてきました。すべてが非常にうまくいっていますが、1 つのことを除いて、onerror イベントを受信したときにエラー番号または説明を読み取る方法がわかりません。

クライアントのウェブソケットは、javascriptで行われます。

例えば

// Init of websocket
websocket = new WebSocket(wsUri);
websocket.onerror = OnSocketError;
...etc...

// Handler for onerror:
function OnSocketError(ev)
{
    output("Socket error: " + ev.data);
}

出力'はdivに書き込むユーティリティ関数に過ぎません。

私が得ているのは、ev.dataに対する'undefined'です。常にです。そして、いろいろググってみましたが、このイベントがどんなパラメータを持っていて、それを適切に読み取る方法については仕様がないようです。

どんな助けでも感謝します!

どのように解決するのですか?

エラー Eventonerror ハンドラは はそのような情報を含まない単純なイベントです :

ユーザーエージェントがWebSocket接続を失敗させる必要があった場合、またはWebSocket接続が偏見で閉じられた場合、WebSocketオブジェクトでerrorという単純なイベントを発生させます。

をリッスンする方がよいでしょう。 close イベント、つまり CloseEvent であり、実際に CloseEvent.code プロパティに数値コードが含まれています。 RFC 6455 11.7 CloseEvent.reason 文字列のプロパティがあります。

しかし、以下の点に注意してください。 CloseEvent.code (そして CloseEvent.reason ) は制限されます を制限することで、ネットワーク・プローブやその他のセキュリティ問題を回避することができます。