websocket ws + wss 通信
I. 简介
websocket可以实现js代码与python代码的通信,其主要优势在于可以维持长连接,减少通信的平均报文长度。websocket有两种通信方式,不安全的ws和安全的wss。websocket的第一次连接采用https报文的方式,后续使用协议内的报文方式。
相关资料链接:
WebSocket协议:5分钟从入门到精通
II. ws通信
ws只支持本地的websocket通信,实现起来也较为简单。
服务器端
客户端
js网页端
相关资料链接:
HTML5 WebSocket 菜鸟教程
Websocket官方文档
III. wss通信
wss是安全的ws。使用wss访问websocket服务器需要ssl证书。对于域名而言,各类ssl证书都可以绑定;对于公网ip,目前只有Globalsign的ov ssl证书支持绑定。wss通信对于端口没有要求,任意未被占用的端口都可以被用来进行websocket通信。
相关资料链接:
ssl python官方文档
数字证书、公钥和私钥这三者之间的关系是什么
对于证书生成而言,可以自己使用openssl生成自签名证书(下面第一个相关资料有证书的生成方法,不过建议用ssl python 官方文档里的命令生成,其实只需要private key和 certificate),阿里云也有免费的DV证书,DV,OV和EV证书都有付费版本,选购前最好考虑清楚需求。对于自签名证书,openssl生成证书时的选项common name就是指证书绑定的域名,如果想绑定本地,就填localhost.
相关资料链接:
Windows安装使用Openssl
申请SSL证书,建议先看完这14个问题
wss对于通信双方都需要证书,如果是程序的服务器和客户端,两者需要同一份证书,且需要pem结尾格式。如果是网页端的js代码,则需要把cer文件类型的证书添加到浏览器中,cer文件是上述pem文件的二进制版。
相关资料链接:
如何让chrome信任自签名证书?
iOS https自签名证书— xxx.crt 转化成xxx.cer 格式
websocket - Error in connection establishment: net::ERR_INSECURE_RESPONSE
最后是wss的实例代码:
代码的客户端和服务器端都需要绑定证书:
服务器端:
客户端:
js网页端:
这一项其实只需要把ws改为wss,最重要的是要给浏览器添加证书。
我做的工作是实现从外网的网页端上使用websocket客户端与服务器websocket服务器端进行通信。对于以上有任何不够详细或者不明白的地方,欢迎讨论学习。
websocket ws + wss 通信相关推荐
- websocket测试工具,支持ws wss服务端和客户端
介绍一个名为:WebsocketMan的websocket测试工具,支持ws wss服务端和客户端.可以将请求保存为文件,支持header非常方便测试.支持Windows Linux macOS系统. ...
- websocket测试工具,支持ws wss客户端
websocket测试工具,支持ws wss客户端 websocket测试工具,支持ws wss客户端 程序界面 测试效果 程序说明 使用说明 使用注意 开发环境 测试环境 程序版本 源文章出处 下载 ...
- http/https与websocket的ws/wss的关系
今天在域名升级到HTTPS的时候遇到websocket的链接问题,之前在http下使用的是new WebSocket('ws://xxx');但是在切换到HTTPS后这个链接部分浏览器报错甚至代码整体 ...
- websocket ws 协议 简介
一.内容概览 WebSocket的出现,使得浏览器具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket如何建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSocke ...
- Node.js websocket/ws 详解
前言 众所周知,HTTP协议是一种无状态.无连接.单向的应用层协议,只能由客户端发起请求,服务端响应请求. 这就显示了一个明显的弊端:服务端无法主动向客户端发起消息,一旦客户端需要知道服务端的频繁状态 ...
- java使用websocket前后端通信实现
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. WebSocket是客户端和服务器端的一个通信,WebSocket分为客户端和服务端,所以我 ...
- Websocket实现前后台通信,demo小测试
新需求大概如下:用户登录系统,登录成功之后建立websocket连接,实现通信 总体思路:前端不是我负责,只是简单的做个功能,先实现登录,把用户标识存入HttpSeesion,再建立websocket ...
- wss 协议php,作为ws/wss客户端
# 作为ws/wss客户端 有时候需要让workerman作为客户端以ws/wss协议去连接某个服务端,并与之交互. 以下是示例. 1.workerman作为ws客户端 ```php use Work ...
- Websocket实现wss协议连接支持语音聊天功能
部署单页应用 SPA 时,我们通常使用 Nginx 做中间层进行转发代理.为了保护 Web 安全,要求我们使用 HTTPS(HTTP + SSL) 以及 WSS(Websocket + SSL) 进行 ...
最新文章
- shell 脚本中如何实现自加操作
- Kali Linux重新支持RTL8814au芯片
- python爬虫京东中文乱码_python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题...
- neo4j / cypher:悬挂查询参数
- extras mibs php7,ubuntu编译安装php7遇到的问题及解决方案
- git 理解 Head指针Branch指针--resetcheckout
- 海量数据挖掘MMDS week7: 相似项的发现:面向高相似度的方法
- linux操作之nfs服务搭建
- mysql获取某天的开始时间和结束时间
- 知人者智,自知者明——战胜自己才最强大(拥有一颗强大的内心,能量爆棚的内在灵魂)...
- Latex中求和符号的使用
- java int 比较大小_3个int整数比较大小?
- 阿里云“网红“运维工程师白金:做一个平凡的圆梦人
- (算法篇)Java实现删除链表倒数第n个节点
- senseTime,FaceU人脸识别技术
- execution使用
- 牛客SQL22--- 统计各个部门的工资记录数
- 如何将电脑的代理网络以WIFI热点的方式共享
- 《Effective Java》中文版第3版 读书笔记
- 大数据时代:大数据引擎或改变大数据竞争格局