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 通信相关推荐

  1. websocket测试工具,支持ws wss服务端和客户端

    介绍一个名为:WebsocketMan的websocket测试工具,支持ws wss服务端和客户端.可以将请求保存为文件,支持header非常方便测试.支持Windows Linux macOS系统. ...

  2. websocket测试工具,支持ws wss客户端

    websocket测试工具,支持ws wss客户端 websocket测试工具,支持ws wss客户端 程序界面 测试效果 程序说明 使用说明 使用注意 开发环境 测试环境 程序版本 源文章出处 下载 ...

  3. http/https与websocket的ws/wss的关系

    今天在域名升级到HTTPS的时候遇到websocket的链接问题,之前在http下使用的是new WebSocket('ws://xxx');但是在切换到HTTPS后这个链接部分浏览器报错甚至代码整体 ...

  4. websocket ws 协议 简介

    一.内容概览 WebSocket的出现,使得浏览器具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket如何建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSocke ...

  5. Node.js websocket/ws 详解

    前言 众所周知,HTTP协议是一种无状态.无连接.单向的应用层协议,只能由客户端发起请求,服务端响应请求. 这就显示了一个明显的弊端:服务端无法主动向客户端发起消息,一旦客户端需要知道服务端的频繁状态 ...

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

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

  7. Websocket实现前后台通信,demo小测试

    新需求大概如下:用户登录系统,登录成功之后建立websocket连接,实现通信 总体思路:前端不是我负责,只是简单的做个功能,先实现登录,把用户标识存入HttpSeesion,再建立websocket ...

  8. wss 协议php,作为ws/wss客户端

    # 作为ws/wss客户端 有时候需要让workerman作为客户端以ws/wss协议去连接某个服务端,并与之交互. 以下是示例. 1.workerman作为ws客户端 ```php use Work ...

  9. Websocket实现wss协议连接支持语音聊天功能

    部署单页应用 SPA 时,我们通常使用 Nginx 做中间层进行转发代理.为了保护 Web 安全,要求我们使用 HTTPS(HTTP + SSL) 以及 WSS(Websocket + SSL) 进行 ...

最新文章

  1. shell 脚本中如何实现自加操作
  2. Kali Linux重新支持RTL8814au芯片
  3. python爬虫京东中文乱码_python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题...
  4. neo4j / cypher:悬挂查询参数
  5. extras mibs php7,ubuntu编译安装php7遇到的问题及解决方案
  6. git 理解 Head指针Branch指针--resetcheckout
  7. 海量数据挖掘MMDS week7: 相似项的发现:面向高相似度的方法
  8. linux操作之nfs服务搭建
  9. mysql获取某天的开始时间和结束时间
  10. 知人者智,自知者明——战胜自己才最强大(拥有一颗强大的内心,能量爆棚的内在灵魂)...
  11. Latex中求和符号的使用
  12. java int 比较大小_3个int整数比较大小?
  13. 阿里云“网红“运维工程师白金:做一个平凡的圆梦人
  14. (算法篇)Java实现删除链表倒数第n个节点
  15. senseTime,FaceU人脸识别技术
  16. execution使用
  17. 牛客SQL22--- 统计各个部门的工资记录数
  18. 如何将电脑的代理网络以WIFI热点的方式共享
  19. 《Effective Java》中文版第3版 读书笔记
  20. 大数据时代:大数据引擎或改变大数据竞争格局

热门文章

  1. Java安装WindowBuilder
  2. word的表格怎么转化成html,从WORD表格换成html.doc
  3. Opencv连通域检测
  4. Qt问题:中文乱码+常量中有换行符
  5. CRC循环冗余校验是如何纠错的
  6. 小程序webview嵌入h5兼容iphone安全区域
  7. 基于翻译的模型-TransE,TransH,TransR,TransD
  8. golang errors
  9. Maven中scope标签详解
  10. 视频剪辑软件如何合并分割视频文件