jetty是一个轻量级的可嵌入的web服务器,他对websocket的支持也是非常好的,下面就介绍如何通过jetty服务器的websocket实现聊天室功能:
一、后台实现
后台使用的springMVC,具体的搭建可以看
websocket
main.java.test.websocket.WebSocketInitServlet
websocket
/websocket.ws
来拦截来自前端的websocket请求,这里的servlet类WebSocketInitServlet代码实现如下,
package main.java.test.websocket;
import javax.servlet.http.HttpServletRequest;
import org.eclipse.jetty.websocket.WebSocketServlet;
public class WebSocketInitServlet extends WebSocketServlet {
private static final long serialVersionUID = -7302427588920888589L;
/**
* websocket建立连接
*/
@Override
public WebSocket doWebSocketConnect(HttpServletRequest request, String arg1) {
return new WebSocket();
}
}
覆盖了一个dowebsocketconnect方法,返回的webSocket对象则是具体的websocket业务处理了,代码实现如下
package main.java.test.websocket;
import java.util.List;
import net.sf.json.JSONObject;
import org.eclipse.jetty.websocket.WebSocket.OnTextMessage;
import com.sun.istack.internal.logging.Logger;
public class WebSocket implements OnTextMessage {
private static final Logger log = Logger.getLogger(WebSocket.class);
/**
* websocket连接
*/
private Connection conn = null;
private String key ;
/**