在Spring项目中,可以通过判断请求头中的”Upgrade”字段来区分WebSocket请求和HTTP请求。WebSocket握手请求会包含”Upgrade”字段为”websocket”,而普通的HTTP请求则不包含该字段。因此可以通过拦截器中判断请求头中的”Upgrade”字段来区分WebSocket请求和HTTP请求。
当WebSocket建立连接时没传token的情况下会一直轮询,可以在拦截器中通过判断请求的路径或其他特定字段来区分是否为WebSocket轮询请求,然后做相应处理,可以让该请求放行,不进行token校验。
另外,可以在拦截器中将WebSocket请求和普通HTTP请求分别处理,可以根据项目需求分别添加对应的拦截器逻辑。