运行环境:使用websocket通信,客户端是iOS APP,使用swift写的websocket库Starstream2.0,在模拟器上运行,服务端是Java的spring-websocket框架。

问题描述:当客户端和服务端都按官方文档提供的标准写法写好后,出现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以后这个问题会解决。

解决swift实现的websocket与后台通信问题:websocket is disconnected: masked and rev data is not currently supported相关推荐

  1. qt通过websocket和html通信,QT Websocket实现服务器客户端通讯(服务端部分)

    接上文QT Websocket实现服务器客户端通讯(客户端部分)web https://blog.csdn.net/qq_39573345/article/details/80682232 服务器 S ...

  2. .NET 即时通信,WebSocket服务端实例

    即时通信常用手段 1.第三方平台 谷歌.腾讯 环信等多如牛毛,其中谷歌即时通信是免费的,但免费就是免费的并不好用.其他的一些第三方一般收费的,使用要则限流(1s/限制x条消息)要么则限制用户数. 但稳 ...

  3. 全双工通信的 WebSocket

    一. WebSocket 是什么? WebSocket 是一种网络通信协议.在 2009 年诞生,于 2011 年被 IETF 定为标准 RFC 6455 通信标准.并由 RFC7936 补充规范.W ...

  4. 【Web通信】WebSocket详解:WebSocket是什么?如何使用WebSocket?在Vue中封装WebSocket(心跳监测)。nginx配置websocket。

    一.WebSocket相关定义 1. WebSocket定义 WebSocket 是一种基于TCP的全双工通信协议,它提供了一种在浏览器和服务器之间建立持久连接来交换数据的方法.数据可以作为" ...

  5. java使用websocket前后端通信实现

    文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. WebSocket是客户端和服务器端的一个通信,WebSocket分为客户端和服务端,所以我 ...

  6. app与后台通信完整流程

    前言: 接着补充app后台(也叫服务端开发)的基础知识.基础要夯实,不然哪来的万张高楼? 正文: 问1:整个前台后台交互的流程是个什么样子? 答:基于http协议的app前后台交互包含以下几个步骤: ...

  7. websocket ws + wss 通信

    I. 简介 websocket可以实现js代码与python代码的通信,其主要优势在于可以维持长连接,减少通信的平均报文长度.websocket有两种通信方式,不安全的ws和安全的wss.websoc ...

  8. websocket没准备好如何解决_看完让你彻底搞懂Websocket原理

    偶然在知乎上看到一篇回帖,瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有.所以转到我博客里,分享一下.比较喜欢看这种博客,读起来很轻松,不枯燥,没有布道师的阵仗 ...

  9. 一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活

    一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活    前言  HTML5中有一个比较好用的特性,就是Websocket.现在已集成在chrome的较新版本中.由 ...

  10. 一起来用Websocket(二):Websocket协议详细分析

    一起来用Websocket(二):Websocket协议详细分析 前言 本节主要翻译一下websocket的协议.其中,socket通信开发,最重要的就是协议了.通信软件(QQ.MSN).杀毒软件(3 ...

最新文章

  1. Java服务提供_JAVA 服务提供者框架介绍
  2. IEEE发布2022年科技趋势全球调研:人工智能和机器学习、云计算及5G将成为下一年最重要的技术...
  3. 捕捉mysql中不可忽视的知识点(二)
  4. PS常用快捷键就这些了,记住绘图事半功倍
  5. 一个常用的表单文本框input输入提示
  6. 手机文件share.php,华为P10手机Huawei Share怎么用?一秒共享手机文件
  7. Algorithm Gossip (22) 中序式转后序式(前序式)
  8. UART0串口编程(三):中断方式的串口编程;用中断编写发送函数
  9. HDU4007 Dave [杂题]
  10. 2015生命之旅---第二站长沙杭州
  11. win11退回win10一直黑屏转圈怎么办 win11退回win10黑屏转圈的解决方法
  12. cocos2d怎么设置屏幕朝向?横屏 or 竖屏设置
  13. 如何关闭父窗体?C#(已解决)
  14. 前端开发SEO搜索引擎优化方案
  15. linux下安装录制视频软件Simple Screen Recorder
  16. 嵌入式开发<网络调试工具>
  17. 微信小程序开发手记1.0
  18. 计算机网络基础之运输层
  19. 物体检测之SNIPER
  20. windows安装(从U盘启动盘)

热门文章

  1. 计算机图形学:中点划线法(任意斜率)
  2. 微型计算机原理姚向华答案,微型计算机原理试题答案-微型计算机原理姚向华.doc...
  3. 【华为云·云筑2020】AI考卷答案
  4. 详解pytorch fold和unfold用法
  5. 模拟电子技术之运算放大器
  6. CAD工具——图纸剪切
  7. c语言平 ac自动机,多模式串匹配之AC自动机算法(Aho-Corasick算法)简介与C语言程序实现源码参考...
  8. epub与txt的区别是什么?有什么好用的IOS手机epub阅读器
  9. “造星工厂“乐华娱乐IPO,如何寻找下一个“王一博“?
  10. html设计判断闰年,javascript如何判断是否为闰年?