Apache Tomcat websockets服务器端消息
我已经成功地为tomcat WebSocket实现了一个简单的echo服务器示例。现在我需要从服务器向客户端发送连续消息。我如何做到这一点 提供服务器端代码Apache Tomcat websockets服务器端消息,tomcat,websocket,Tomcat,Websocket,我已经成功地为tomcat WebSocket实现了一个简单的echo服务器示例。现在我需要从服务器向客户端发送连续消息。我如何做到这一点 提供服务器端代码 package org.playjava.websocket; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import javax.servlet.http.HttpServletRequest; import o
package org.playjava.websocket;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import javax.servlet.http.HttpServletRequest;
import org.apache.catalina.websocket.MessageInbound;
import org.apache.catalina.websocket.StreamInbound;
import org.apache.catalina.websocket.WebSocketServlet;
import org.apache.catalina.websocket.WsOutbound;
public class SimpleEchoServlet extends WebSocketServlet {
@Override
protected StreamInbound createWebSocketInbound(String string, HttpServletRequest hsr) {
return new SimpleEchoInbound();
}
private static final class SimpleEchoInbound extends MessageInbound {
public SimpleEchoInbound() {
super();
}
@Override
protected void onBinaryMessage(ByteBuffer message) throws IOException {
getWsOutbound().writeBinaryMessage(message);
}
@Override
protected void onTextMessage(CharBuffer message) throws IOException {
getWsOutbound().writeTextMessage(message);
getWsOutbound().writeTextMessage(message);
getWsOutbound().writeTextMessage(message);
}
}
}
在SimpleChoinBond的构造函数中启动一个线程,并在该线程中调用getWsOutbound().writeTextMessage() 顺便说一句,您使用的是Tomcat专有的WebSocket API,它在Tomcat 7中被弃用,在Tomcat 8中被完全删除。您应该切换到JSR-356JavaWebSocket API,该API在Tomcat7和Tomcat8中都完全受支持