使用websocket技术实现消息推送到网页效果。
主要说两种,一种是servlet,一种是struts2. 两种方法后台稍微有点区别,交叉没有试过。
初步测试已调通此两种方法。
第一种:
servlet
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.websocket.server.ServerEndpoint;
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 WebServelt extends WebSocketServlet {
private static final long serialVersionUID = -4853540828121130946L;
private static ArrayList<MyMessageInbound> mmiList = new ArrayList<MyMessageInbound>();
@Override
protected StreamInbound createWebSocketInbound(String str,
HttpServletRequest request) {
return new MyMessageInbound();
}
private class MyMessageInbound extends MessageInbound {
WsOutbound myoutbound;
@Override
public void onOpen(WsOutbound outbound) {
try {
System.out.println("Open Client.");
this.myoutbound = outbound;
mmiList.add(this);
outbound.writeTextMessage(CharBuffer.wrap("Hello!"));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onClose(int status) {
System.out.println("Clos