我正在尝试编写一个使用org.apache.catalina.websocket.WebSocketServlet
. 我找到了一个 websocket 聊天的例子,但我不知道如何为 websocket 服务器指定监听端口(在这个 servlet 中实现)?例如,我需要监听端口上的客户端连接11337
。但是我该如何表达呢?
好的,这是(简化的)代码:
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文档也没有多大帮助。
所以我猜它可以在servlet设置中的某个地方设置,但找不到在哪里。
有没有人有任何想法?