質問: webSocoket通信で分からない事があるので教えてください。 webSocketでどちらか片方のプログラムが終了した場合、終了前に相手側にCLoseの要求を出さずに終了すると、相手側(まだ生きているほう)には、onErrorイベントが発生するとう事で認識はあっているのでしょうか? また、webScoketは、クライアント側もサーバー側も、相手側が終了すると、もう片方(生きている側)は、接続が切れた事は必ず認識できるのでしょうか?(片方が終了したのに、それに気がつかず、OnCloseもonErrorも発生しないという事は無いものなのでしょうか?)
回答: ええ、onErrorイベントがが発生するという認識で間違いありません。 接続が切れた場合は必ずOnCloseが発生しますので大丈夫です。 ただ、OnErrorが発生するともれなくそのあとにOnCloseが呼び出されます(JSのWebSocketの場合ですが) onError、onCloseどちらとも呼ばれないということは(仕様上)ありません。 ブラウザー側のJSのWebSocket APIの話になりますが、onerrorイベントでの引数にはエラー情報がありません。oncloseイベントの引数のオブジェクトにcodeプロパティがありますのでこのcodeの数字でどのような理由で接続が閉じられたかを判断します。(HTMLの404などのステータスコードのようなもの)