package com.zdcf.websocket;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.server.HandshakeInterceptor;
import com.zdcf.model.User;
import com.zdcf.tool.UserSessionUtil;
/**
* Socket建立连接(握手)和断开
*/
public class HandShake implements HandshakeInterceptor {
public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
User user =UserSessionUtil.currentUser();
System.out.println("Websocket:用户[ID:" + user.getId() + "]已经建立连接");
if (request instanceof ServletServerHttpRequest) {
// 标记用户
Integer uid = user.getId();
if(uid!=null){
attributes.put("uid", uid);
}else{
return false;
}
}
return true;
}
public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) {
System.out.println("after hand");
}
}