解决swift实现的websocket与后台通信问题:websocket is disconnected: masked and rev data is not currently supported
2017-05-23 09:21
966 查看
运行环境:使用websocket通信,客户端是iOS APP,使用swift写的websocket库Starstream2.0,在模拟器上运行,服务端是Java的spring-websocket框架。
问题描述:当客户端和服务端都按官方文档提供的标准写法写好后,出现websocket is disconnected: Invalid HTTP upgrade错误,经过一翻查找讨论,为websocket客户端这边建立链接时加上http头信息,如下:
之后可以建立链接,但此时iOS APP向服务端发送信息,服务端是可以正常接收解析,而服务端返回的信息,在iOS APP收到后,提示websocket is disconnected: masked and rev data is not currently supported后断开链接。在GitHub上的Starscream问题讨论区找到解决办法(checkout line: https://github.com/daltoniam/Starscream/issues/46):
之后可以正常通信。
待验证:和使用的Startscream版本有关系,我这里用的版本比较低,所以会出现这种情况,当升级到2.4.3以后这个问题会解决。
问题描述:当客户端和服务端都按官方文档提供的标准写法写好后,出现websocket is disconnected: Invalid HTTP upgrade错误,经过一翻查找讨论,为websocket客户端这边建立链接时加上http头信息,如下:
socket.headers["Sec-WebSocket-Version"] = "13" socket.headers["Sec-WebSocket-Extensions"] = "permessage-deflate" socket.headers["Pragma"] = "no-cache" socket.headers["Cache-Control"] = "no-cache" socket.headers["Origin"] = "http://yourself ip" socket.headers["Encoding"] = "gzip,deflate,sdch" socket.headers["Accept-Language"] = "zh-CN,zh;q=0.8" socket.headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER)"
之后可以建立链接,但此时iOS APP向服务端发送信息,服务端是可以正常接收解析,而服务端返回的信息,在iOS APP收到后,提示websocket is disconnected: masked and rev data is not currently supported后断开链接。在GitHub上的Starscream问题讨论区找到解决办法(checkout line: https://github.com/daltoniam/Starscream/issues/46):
//socket.headers["Sec-WebSocket-Extensions"] = "permessage-deflate" //需要去掉这里的压缩格式
之后可以正常通信。
待验证:和使用的Startscream版本有关系,我这里用的版本比较低,所以会出现这种情况,当升级到2.4.3以后这个问题会解决。
相关文章推荐
- HSLab.exe 出现Requested data format is not supported问题的解决
- 解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- Webdriver Element is not currently visible and so may not be interactedwith 解决方法
- 解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- 解决javax.websocket.DeploymentException: The path [webSocket] is not valid.
- 【软工学习笔记】【web开发环境】解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- 解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- WebDriver遇到Element is not currently visible and so ...解决
- iOS iOS8中 问题"registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later" 解决方式
- websocket 解决 The extension [x-webkit-deflate-frame] is not supported 问题
- 解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- iOS iOS8中 问题"registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later" 解决方案
- Hadoop报错:“Operation category READ is not supported in state standby”问题解决
- web server is not running asp.net version 1.1问题解决
- keyword not supported data source 或者Keyword not supported: 'server'的问题解决办法
- keyword not supported data source 问题解决办法
- selenium webDriver: Element is not currently visible and so may not be interacted with
- 【问题解决】Project facet Java version 1.7 is not supported.
- Selenium-异常:Element is not currently visible and so may not be interacted with的解决
- web项目浏览器打开遇到问题:HTTP Status 503 - This application is not currently available