websocket怎么将token传给后台

2021-02-01

一 利用Cookie

let ws = new WebSocket("ws://localhost:7777/test");

建立连接前会先发送一个包含 Upgrade: websocket 请求头的GET请求,请求头会携带Cookies等信息,所以可以利用Cookie把token传给后台(后面有时间要看一下websocket协议的RFC)

@Component
public class MyInterceptor1 implements HandshakeInterceptor {
    //1. 建立请求先来这儿
    @Override
    public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {
        HttpHeaders h=request.getHeaders();
        System.out.println("连接请求来啦!!");
        return true;//若返回false不会建立连接
    }

 

二 serverHttpRequest.getURI()

得到的是完整路径 GET update那个URL,这个貌似只能自己来提取,ServerHttpRequest没有提供获取参数的方法