【发布时间】:2013-10-06 03:57:04
【问题描述】:
我是 Vert.x 的新手,所以请原谅我的新手。
我能够使用 Vert.x 创建一个非常简单的 SockJS 服务器,但是我不知道如何在打开或关闭连接时注册事件/回调/处理程序。
使用 JSR-356,处理打开/关闭连接事件变得非常简单:
@OnOpen
public void onOpen(Session userSession) {
// Do whatever you need
}
@OnClose
public void onClose(Session userSession) {
// Do whatever you need
}
使用 Spring Framework 4.0 M1+ 中的 SockJS 支持,几乎与 JSR-356 相同:
public class MySockJsServer extends TextWebSocketHandlerAdapter {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
// Do whatever you need
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
// Do whatever you need
}
}
出于某种原因,我无法弄清楚如何在 Vert.x 中做一些概念上如此简单的事情。我以为 Vert.x 很简单?!!
如果有人能指出我正确的方向,请提供帮助。
我玩过 EventBus 和 EventBus 钩子,但没有用。无论如何,这可能是错误的方法。
我使用的是 Vert.x 版本 2.0.1
TIA
【问题讨论】:
-
这是答案:sockJSServer = sockJSServer.installApp(new JsonObject().putString("prefix", "/test"), new Handler
() { public void handle(final SockJSSocket sock) { System.out.println("检测到新会话!"); // 会话结束处理程序 sock.endHandler(new Handler () { @Override public void handle(Void arg) { System.out.println( "在 endHandler"); } }); } }); httpServer.listen(8080);