Vue前端使用了WebSocket和服务器进行交互,在PC和ANDROID上都正常使用,但是在苹果手机上连接失败,也没什么报错,经过抓包发现了问题。
这是正常浏览器访问的协议:

下面是IOS手机访问时抓到的协议

发现了这2个地方有区别,然后百度了一下发现存在 The extension [x-webkit-deflate-frame] is not supported 的问题
https://blog.csdn.net/zkp0601/article/details/50365699
按照上面的办法,在服务器端拦截器加上:
if(request.getHeaders().containsKey("Sec-WebSocket-Extensions")){
request.getHeaders().set("Sec-WebSocket-Extensions", "permessage-deflate");
}
就可解决!
网友评论