を使用するサーブレットを作成しようとしていますorg.apache.catalina.websocket.WebSocketServlet
。Websocket チャットの例を見つけましたが、Websocket サーバー (このサーブレットに実装されています) のリスニング ポートを指定する方法がわかりません。たとえば、ポートでクライアント接続をリッスンする必要があります11337
。しかし、これをどのように表現すればよいでしょうか。
OK、これが(簡略化された)コードです:
public class TestServlet extends WebSocketServlet {
private static final Logger logger = LoggerFactory.getLogger(TestServlet.class);
public TestServlet() {
logger.error("Initializing TestServlet");
}
@Override
protected StreamInbound createWebSocketInbound(String subProtocol, HttpServletRequest request) {
logger.error("New WS connection, subProtocol=" + subProtocol + ", request=" + request.getRequestURL());
return new TestConnection();
}
private class TestConnection extends MessageInbound {
@Override
protected void onBinaryMessage(ByteBuffer byteBuffer) throws IOException {
logger.error("onBinaryMessage");
}
@Override
protected void onTextMessage(CharBuffer charBuffer) throws IOException {
logger.error("onBinaryMessage: " + charBuffer);
sendMessage("Test message");
}
public void sendMessage(String message) {
WsOutbound outbound = this.getWsOutbound();
CharBuffer cb = CharBuffer.wrap(message);
try {
outbound.writeTextMessage(cb);
} catch (IOException e) {
logger.error("failed to write outbound");
}
}
}
}
リスニング ポートを設定できる場所と方法が見つかりません。公式のwebsocketドキュメントもあまり役に立ちません。
したがって、サーブレット設定のどこかに設定できると思いますが、どこにあるのかわかりません。
誰にもアイデアはありますか?