J'essaie d'écrire une servlet qui utilise org.apache.catalina.websocket.WebSocketServlet
. J'ai trouvé un exemple de chat websocket, mais je n'arrive pas à comprendre comment je peux spécifier le port d'écoute pour un serveur websocket (qui est implémenté dans cette servlet) ? Par exemple, j'ai besoin d'écouter la connexion des clients sur le port 11337
. Mais comment puis-je l'exprimer ?
OK, voici le code (simplifié) :
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");
}
}
}
}
Je n'arrive pas à trouver où et comment je peux définir le port d'écoute. Site officiel websocket La documentation n'aide pas non plus beaucoup.
Je suppose donc qu'il peut être défini quelque part dans les paramètres de la servlet, mais je ne trouve pas où.
Quelqu'un a-t-il une idée ?