websocket请求的时候要获取请求头而且需要给前端相同的相应,所以需要处理。这里记录一下。
创建一个配置类,并且继承ServerEndpointConfig.Configurator
重写modifyHandshake方法,获取请求头和反应相应赋值。
在@ServerEndpoint注解上加上configurator=WebSocketConfig.class 也就是上面配置的配置信息
eg:
@Component
@ServerEndpoint(value ="/webSocket/{username}",encoders = { ServerEncoder.class },configurator = WebSocketConfig.class)
public class WebSocketServer {
/**
* 连接开始调用的方法
*/
@OnOpen
public void onOpen(Session session) throws Exception {}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose(@PathParam(value = "username") Integer userId,Session session) {}
这样就可以获取到header并且可以给前端响应。