服务端库依赖详见章末
#####spring websocket服务端代码(会话过程)
public class HandshakeInterceptor extends HttpSessionHandshakeInterceptor {
private static final Logger logger = LoggerFactory.getLogger(HandshakeInterceptor.class);
//会话开始
@Override
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) throws Exception {
attributes.put(Constant.WEBSOCKET_USERNAME,"LSH");
// 从session中获取用户
/*if (request instanceof ServletServerHttpRequest) {
ServletServerHttpRequest serverHttpRequest = (ServletServerHttpRequest) request;
HttpSession session = serverHttpRequest.getServletRequest().getSession(false);
if (session!=null) {
String username = (String) session.getAttribute(Constant.SESSION_USERNAME);
attributes.put(Constant.WEBSOCKET_USERNAME,username);
}
}*/
return true;
}
//会话结束
@Override
public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception ex) {
System.out.println("After Handshake");
super.afterHandshake(request, response, wsHandler, ex);
}
}
#####服务端websocket消息处理
import com.beesgame.sanguo.constant.Constant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
import java.io.IOException;
import java.util.ArrayList;
/**
* Created by hackway on
* Date: 2016/1/15.
* Time:11:15
*/
public class WebSocketEndPoint extends TextWebSocketHandler {
private static final ArrayList users;
private static final Logger logger;
static {
users = new ArrayList();
logger = LoggerFactory.getLogger(WebSocketEndPoint.class);
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
super.handleTextMessage(session, message);
TextMessage returnMessage = new TextMessage(message.getPayload()+" received at server");
session.sendMessage(returnMessage);
}
@Override
p