シンプルな組み込みの Jetty 9 Websocket サーバーがあります。注釈付きの websocket 実装には、次のようなメソッドがあります。
@OnWebSocketClose
void onClose(int statusCode, String reason) {
logger.info "Closed connection [${this}]"
connectionManager.remove(this)
Event closeEvent = commsEventFactory.buildCloseEvent(this, statusCode, reason)
eventReceiver.postEvent(closeEvent)
}
async-http-client を使用してサーバーに接続するスポック テストがあります。接続に成功し、メッセージを送受信できます。
ただし、onClose() は呼び出されません (async-http-client の websocket.close() または client.close() を呼び出したとき、またはテスト JVM が終了したときでも)。
ソケットの遠端が消えるとすぐに onClose が起動することを期待していました。