【发布时间】:2026-01-03 18:10:02
【问题描述】:
我有一个简单的嵌入式 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)
}
我有一个 spock 测试,它使用 async-http-client 连接到服务器。我获得了成功的连接,并且可以来回发送消息。
但是,永远不会调用 onClose()(当我调用 async-http-client 的 websocket.close() 或 client.close() 时,甚至当测试 JVM 死机时)。
我预计当套接字的远端消失时 onClose 会立即触发。
【问题讨论】:
标签: websocket jetty embedded-jetty