높이 요-X에서 StompServerHandlers 처리 나는내가 VERT-X 3.5.0 사용하고
내 자바 코드는 다음되는 웹 소켓 서버로 StompServer를 사용하려면 방법 :
import io.vertx.core.AbstractVerticle;
import io.vertx.core.http.HttpServerOptions;
import io.vertx.core.logging.Logger;
import io.vertx.core.logging.LoggerFactory;
import io.vertx.ext.stomp.StompServer;
import io.vertx.ext.stomp.StompServerHandler;
import io.vertx.ext.stomp.StompServerOptions;
StompServer server = StompServer.create(vertx, new StompServerOptions()
.setPort(-1)
.setWebsocketBridge(true)
.setWebsocketPath("/stomp"))
.handler(StompServerHandler.create(vertx)
.receivedFrameHandler(event -> {
LOG.info(String.format("frame is %s", event.frame().getBodyAsString()));
})
.beginHandler(event -> {
LOG.info("Begin event");
})
.connectHandler(event -> {
LOG.info("Connect event");
})
.subscribeHandler(event -> {
LOG.info("Subscribe event");
}));
vertx.createHttpServer(
new HttpServerOptions().setWebsocketSubProtocols("v10.stomp, v11.stomp, v13.stomp")
)
.websocketHandler(server.webSocketHandler())
.listen(8080);
서버 실행 중이며 핸드 셰이크 요청과 메시지를 수신 할 수 있습니다. 나는
Server received request: /stomp
[id: 0x1f899ae3, L:/127.0.0.1:8080 - R:/127.0.0.1:42550] WebSocket version V13 server handshake
WebSocket version 13 server handshake key: Qe8G85Aw1PwuQbWKPyJSrg==, response: VQVnKr2Jp8RuK/vltKb7XqBiMTU=
Decoding WebSocket Frame opCode=1
Decoding WebSocket Frame length=7
웹 소켓 클라이언트에서 확장 된 서버 로그에서 볼하지만 작동하지 않습니다 핸들러 (receivedFrameHandler, beginHandler, connectHandler, subscribeHandler)를 선언했다. 어떻게 그들을 다루는가?
나는 당신이 말하는 것에 대해 이해하고있는 것 같습니다. 웹 소켓을 통해 STOMP 서버에 대한 일반 웹 소켓 클라이언트를 사용할 수 없습니다. 아니면 사용할 수 있지만 특정 STOMP 프레임을 websocket 프로토콜을 통해 보내야합니까? 그리고 서버가 간단한 웹 소켓 프레임에서 어떤 반응을 보이는지는 중요하지 않습니까? – b3lowster
Stomp 서버는 전송 프로토콜 (TCP - 기본값 또는 WebSocket)이 무엇이든간에 STOMP 프레임을 기다리고 있습니다. – Clement