微信小程序的 websocket

  • 在本地web能够使用ws协议去链接websocket,但是小程序不能使用。
  • 一、WSS 协议与 WS 协议
  • 二、业务场景记录 : 使用 ws 协议的 websocekt 做测试,但是在 h5中可以拿到实时数据,在微信开发者工具中以及真机调试中拿不到模拟数据的问题
    • 1. 首先在 h5 测试当中是拿到了 ws 协议的 websocket 的连接数据的

在本地web能够使用ws协议去链接websocket,但是小程序不能使用。

因此找了一下关于websocket 的协议问题
因为需要开发的小程序需要通过 websocket 连接来实时显示仪表的数据,因此在开发前期,使用模拟器来模拟了一个 ws 协议的 websocket 接口,但是在 web 也就是 h5 当中测试是可以的,可以通过 ws 协议的端口获取到模拟器的数据并在小程序页面中渲染,但是在微信开发者工具中测试的时候发现拿不到模拟器返回的数据
但是当前能用的接口只有一个,并且还是 ws 协议的


一、WSS 协议与 WS 协议

WebSocket是一种在单个TCP 连接上进行全双工通讯的协议。 在WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以建立持久性的连接,并进行双向数据传输。

HTML5支持WebSocket,使用方法和小程序的WebSocket基本是一样的。WebSocket API由若干个方法和若干个事件组成。

由于小程序使用的是SSL加密协议,所以需要使用wss。这里wss与ws的关系就相当于https于http的关系。
在小程序中,必须使用wss,而在HTML5中并没这个要求,使用wss和ws都可以,而且域名也不需要备案。

我自己的理解就是 : ws + SSL = wss 因此需要申请 SSL
或者: 微信小程序可以通过通过 nginx 代理的方式将 ws 转为 wss

二、业务场景记录 : 使用 ws 协议的 websocekt 做测试,但是在 h5中可以拿到实时数据,在微信开发者工具中以及真机调试中拿不到模拟数据的问题

1. 首先在 h5 测试当中是拿到了 ws 协议的 websocket 的连接数据的

但是微信小程序开发者工具中运行的时候由于需要使用 wss 协议的 websocket 拿不到数据
碰巧找到了一个很邪门的方案,可以在安卓端真机调试的情况下下在手机上拿到了 ws 协议的 websocket 数据(微信开发者工具还是拿不到的)

注意,这里只能用来测试,毕竟只有真机调试是可以的,正式发布还是用 wss 协议的 websocket 吧

之前有一个类似的项目测试的时候使用的也是 ws 协议的 websocket ,但是在 H5端,在微信开发者工具,在真机调试,PC 端都是可以拿到实时数据的
这个项目在微信开发者工具中就拿不到数据了,在对比了请求之后发现了一个事情

所以在看状态码这里 101 后面有没有 switching protocols ,后来在真机调试的时候看到现在项目在真机调试的时候 ws 请求也是有 101 switching protocols 的
尝试在真机调试的状态下取消了勾选不校验合法域名 (取消勾选),手机真机调试就拿到数据了

OS : 我也不知道为什么这样子可以,还是 ws 协议的 websocket ,有点邪门,这个尝试方案的起因是看到下面一篇文章,说是让关闭安全校验,当时看错了,以为是让取消勾选,取消勾选后真的拿到了, 但是后来才发现这篇文章是让把不安全校验勾选上,属实是乌龙事件了

微信小程序的 websocket 以及 微信开发者工具测试 ws 协议没有数据的 离奇解决方案 记录相关推荐

  1. java与微信小程序通讯_java与微信小程序实现websocket长连接

    本文实例为大家分享了java与微信小程序实现websocket长连接的具体代码,供大家参考,具体内容如下 背景: 需要在小程序实现地图固定坐标下实时查看消息 java环境 :tomcat7 jdk1. ...

  2. 微信小程序之WebSocket

     (扫码带走看 ^ ^) 本文版权归 OSChina jsongo0 所有,此处为技术收藏,如有再转请自觉标明原文出处,这是大家对原创作者劳动成果的自觉尊重! 原文地址:https://my.osch ...

  3. 微信是与服务器长连接,java与微信小程序实现websocket长连接.pdf

    java与与微微信信小小程程序序实实现现websocket长长连连接接 本文实例为大家分享了j ava与微信小程序实现websocket长连接的具体代码,供大家参考,具体内容 下 背背景景:: 需要在 ...

  4. 【微信小程序控制硬件⑧ 】微信小程序以 websocket 连接阿里云IOT物联网平台mqtt服务器,封装起来使用就是这么简单!(附带Demo)

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  5. 微信小程序使用websocket

    微信小程序使用websocket 连接websocket let url = `******`//websocket地址 wx.connectSocket({url: url,success() {c ...

  6. 微信小程序python自动化测试_微信小程序的自动化测试框架

    微信小程序的自动化测试框架 微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰富的页 ...

  7. 微信小程序购物商城系统开发系列-工具篇

    微信小程序购物商城系统开发系列-工具篇 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操 ...

  8. 基于微信小程序开发的仿微信demo

    (本文参考自github/liujians,地址:https://github.com/liujians/weApp) 作者声明: 基于微信小程序开发的仿微信demo  整合了ionic的样式库和we ...

  9. 微信小程序开发语言(微信小程序开发教程)详细步骤

    微信小程序开发语言 开发微信小程序用什么语言 1.微信小程序开发所需要的语言比较特别,首先介绍一下需要使用到的文件类型大致分为:WXML(WeiXin Mark Language 微信标记语言).WX ...

最新文章

  1. 整数除以JavaScript中的余数?
  2. 内存中“堆”和“栈”的区别
  3. STM32单片机,禁止系统启动时的变量初始化
  4. Python 网络爬虫笔记5 -- Beautiful Soup库实战
  5. 利用sshfs+任意本地编辑器编辑远程文件
  6. 两步验证杀手锏:Java 接入 Google 身份验证器实战
  7. 数学C语言编程,数学规划 (最速下降法,c语言编程).doc
  8. Spring框架之Filter应用
  9. 稳扎稳打Silverlight(25) - 2.0线程之Thread, Timer, BackgroundWorker, ThreadPool
  10. 基于51单片机的计算器
  11. 西工大学计算机专业考研容易吗,2022年西北工业大学计算机专业考研成功经验...
  12. 办公室海王小姐姐悄悄问我如何在PC端登录多个微信小号?
  13. int 为什么是2147483647_「2147483647」当int类型超出了[-2147483648,2147483647]会发生什么? - seo实验室...
  14. epoll原理_如果这篇文章说不清epoll的本质,那就过来掐死我吧! (1)
  15. static关键字_void和void指针_函数指针
  16. 查看JDK版本和安装路径
  17. 1到20阶乘倒数之和
  18. AtCoder ABC237题解
  19. 微信小程序java python node医疗微服务系统医院预约挂号系统
  20. ISCC 2018 PWN WriteUp

热门文章

  1. python调用pyc文件_Python之code对象与pyc文件(二)
  2. 基于SpringBoot的私人健身与教练预约管理系统的设计与实现
  3. C++实验编程题:.定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count
  4. 万用表可以测量自身的电池电压吗?
  5. android studio开发app实例_基于Android输入法开发,制作一个微信斗图APP
  6. 学习Vue.js入门,简单了解一下
  7. 判定表与判定树的画法_判定表和判定树测试.ppt
  8. 做人,不可打破的天规!切记
  9. micropython应用触摸屏_尝鲜MicroPython,写一个GT911触摸屏的demo
  10. 出师未捷身先死 常使英雄泪满襟——记伍楚华