wss

长连接、短连接、长轮询和WebSocket

泄露秘密 提交于 2020-11-27 04:32:17
//转发,格式待整理 2017-08-0519784View0 对这四个概念不太清楚,今天专门搜索了解一下,总结一下: 长连接:在HTTP 1.1,客户端发出请求,服务端接收请求,双方建立连接,在服务端没有返回之前保持连接,当客户端再发送请求时,它会使用同一个连接。这一直继续到客户端或服务器端认为会话已经结束,其中一方中断连接。 优势:减少了连接请求,降低TCP阻塞,减少了延迟,实时性较好。 劣势:可能会影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。 短连接:在HTTP1.0中,客户端发送请求,服务器接收请求,双方建立连接,服务器响应资源,请求结束。 长轮询:(我自己的理解)客户端不断发送请求,获取服务器上的数据。也有人说是长连接的一种,是这样吗??? WebSocket:客户端发送一次http websocket请求,服务器响应请求,双方建立持久连接,并进行双向数据传输,后面不进行HTTP连接,而是使用TCP连接。 什么是长连接、短连接? 在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。 而从HTTP

ALL2CN#RFC#RFC6455 WebSocket 协议

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-05 08:57:17
原文地址: https://tools.ietf.org/html/rfc6455 中文翻译地址: https://juejin.im/post/6844903779192569869 摘要 WebSocket协议能够通过在受控的环境中运行不可信代码的客户端与已选择通信的远端主机基于该不可信代码进行双向交流。这个用于WebSocket的安全模型是复用Web浏览器使用的基于Origin的安全模型(origin-based security model,可以参考[此处][2])。这个协议由一个开放的握手过程组成,其次是基于TCP的基本数据帧。这个技术的目标是提供基于浏览器的应用与服务端进行双向通行的机制,而不需要通过多个HTTP连接(例如使用XMLHttpRequest或者Iframe模拟长轮询)。 备忘录状态 这是一个互联网标准跟踪文档。 这个文档是由互联网工程任务组(IETF,Internet Engineering Task Force)产出的。它代表了互联网工程任务组社区的共识。这个文档已经征求过公众的意见并且互联网工程指导小组(IESG,Internet Engineering Steering Group)已经同意发布。更多关于互联网标准的信息在[RFC 5741的第二节][3]可以看到。 关于这篇文档当前状态的信息和勘误表,以及如何进行反馈可以在[此处][4]查看。

海关179号

泄露秘密 提交于 2020-10-28 13:54:38
1. 准备工作 第一步去海关注册备案拿到 ukey 去中华人民共和国海关总署下载 179号文档 添加丁鑫微信说明情况会邀请你入群,进群先看 公告 2. 接收海关请求 post方式(x-www-form-urlencoded) 从请求中获取openReq参数的值,该参数值是一个符合json标准的字符串,由于海关提交的请求是post方式(x-www-form-urlencoded),所以在url中是没有参数的,必须要从表单中获取该参数 海关数据示例 { "orderNo" : "202009231454212140210352" , "sessionID" : "032C3F56-0EE6-4558-B548-6C7A3451F07D" , "serviceTime" : "1600852846372" } 接收完后需企业返回响应 json格式数据 必须是json格式 10000表示成功 20000失败 { "code" : "10000" , "message" : "" , "serviceTime" : 1533271903898 } 3. 组装数据和上传报文 使用接收到的sessionID就可以进行加签(前期可以自己模拟请求) 使用ukey进行加签获取签名(使用操作员ukey) 按照179号文档进行数据拼装 获取签名 1. 使用官方js请求时需按以下格式来请求 数据格式

ftp 远程定时备份,ftp 远程定时备份文件的方法及环境配置

ぐ巨炮叔叔 提交于 2020-10-08 09:04:03
IIS7服务器管理工具-FTP客户端 作为FTP客户端,它支持批量管理FTP站点 具体功能: FTP定时上传和定时下载,FTP定时备份,且操作简洁 iis7服务器管理工具还是vnc客户端 支持批量管理管理windows及linux服务器、vps 让服务器真正实现了一站式管理,真的是非常方便。 官网传送门:fwqglgj.iis7.net/cp/ftp/?tscd-zc 配置方式: 一、选择ftp窗口,点击FTP设置 二、进入“FTP设置”—“任务设置”后,我们先添加任务 1、新建任务(一个任务只能选择一种时间周期) 1-1:如何设置 天级定时上传或下载任务 1-2:如何设置 周级定时上传或下载任务 1-3:如何设置 月级定时上传或下载任务 注意点:备份类型的选择 追加:新文件。 修改:新文件,或者修改内容后的文件。 覆盖:不对比文件,直接覆盖原文件。(不推荐) 2、接下来选择FTP(以下示例定时上传操作教程) 2-1:点击“选择FTP” 2-2:进入FTP绑定界面 2-3:成功绑定一台ftp站点 2-4:ftp绑定信息及任务执行结果会在设置界面下方显示 三、提示任务上传成功之后,我们去对应ftp服务器查看任务是否上传完成 经查看,文件已成功上传! 注意:本文以上传为例,如果需要下载只要将传输方向改为“下载”即可! java配置方式如下: import com

ftp自动备份文件,通过定时设置ftp自动备份文件的方式

徘徊边缘 提交于 2020-10-08 09:03:44
IIS7服务器管理工具-FTP客户端 作为FTP客户端,它支持批量管理FTP站点 具体功能: FTP定时上传和定时下载,FTP定时备份,且操作简洁 iis7服务器管理工具还是vnc客户端 支持批量管理管理windows及linux服务器、vps 让服务器真正实现了一站式管理,真的是非常方便。 官网传送门:fwqglgj.iis7.net/cp/ftp/?tscd-zc 配置方式: 一、选择ftp窗口,点击FTP设置 二、进入“FTP设置”—“任务设置”后,我们先添加任务 1、新建任务(一个任务只能选择一种时间周期) 1-1:如何设置 天级定时上传或下载任务 1-2:如何设置 周级定时上传或下载任务 1-3:如何设置 月级定时上传或下载任务 注意点:备份类型的选择 追加:新文件。 修改:新文件,或者修改内容后的文件。 覆盖:不对比文件,直接覆盖原文件。(不推荐) 2、接下来选择FTP(以下示例定时上传操作教程) 2-1:点击“选择FTP” 2-2:进入FTP绑定界面 2-3:成功绑定一台ftp站点 2-4:ftp绑定信息及任务执行结果会在设置界面下方显示 三、提示任务上传成功之后,我们去对应ftp服务器查看任务是否上传完成 经查看,文件已成功上传! 注意:本文以上传为例,如果需要下载只要将传输方向改为“下载”即可! java配置方式如下: import com

看完让你彻底理解 WebSocket 原理,附完整的实战代码(包含前端和后端)

拥有回忆 提交于 2020-09-30 08:33:45
1、前言 最近有同学问我有没有做过在线咨询功能。同时,公司也刚好让我接手一个 IM 项目。所以今天抽时间记录一下最近学习的内容。本文主要剖析了 WebSocket 的原理,以及附上一个完整的聊天室实战 Demo (包含前端和后端,代码下载链接在文末)。 2、WebSocket 与 HTTP WebSocket 协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。 HTTP 有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个 HTTP 请求合并为一个,但是 Websocket 其实是一个新协议,跟 HTTP 协议基本没有关系,只是为了兼容现有浏览器,所以在握手阶段使用了 HTTP 。 下面一张图说明了 HTTP 与 WebSocket 的主要区别: WebSocket 的其他特点: 建立在 TCP 协议之上,服务器端的实现比较容易。 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。 数据格式比较轻量,性能开销小,通信高效。 可以发送文本,也可以发送二进制数据。 没有同源限制,客户端可以与任意服务器通信。

uniapp,微信小程序中使用 MQTT

青春壹個敷衍的年華 提交于 2020-08-20 01:45:09
最近在uniapp打包成微信小程序的项目中第一次用到了MQTT。使用比较简单,但是还是遇到了一些问题。在此记录一下。 官方文档: MQTT Github 官方MQTT测试工具: MQTTX 。 测试工具使用说明 MQTT的js文件: mqtt.min.js 先上一点注意事项: (1) MQTT.js 一个 MQTT 协议的客户端库,用 JavaScript 编写,可用于 Node.js 和浏览器。在 Node.js 端可以通过全局安装使用命令行连接,同时还支持 MQTT ,MQTT TLS 证书连接;值得一提的是 MQTT.js 还对微信小程序有较好的支持。 (2) MQTT可以通过三种方式连接,TCP直连, TLS和WebSocket,但是JavaScript使用 TCP 只能通过 ws 即 Websocket 链接。所以如果服务器是TCP直连,客户端是肯定连不上的,会报 Error in connection establishment 的错误。所以客户端协议只能是ws,wss,wxs(微信) (3) WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议。作为一种通信协议,其使用 ws(非加密)、wss(SSL 加密) 作为协议标识。MQTT.js 客户端支持多种协议,连接地址需指明协议类型; (4) ws: 未加密的 WebSocket 连接

三分钟搭建websocket实时在线聊天,项目经理也不敢这么写

陌路散爱 提交于 2020-08-19 20:57:55
我们先看一下下面这张图: 可以看到这是一个简易的聊天室,两个窗口的消息是实时发送与接收的,这个主要就是用我们今天要讲的websocket实现的。 websocket是什么? websocket是一种网络通信协议,我们都知道http协议,http协议只能从客户端主动发起,不能从服务端推送数据到客户端,今天我们讲的websocket就是一种不仅能从客户端发送数据到服务端,也可以主动从服务的推送数据给客户端的一种协议。 我们先看一张图: 我们可以看到,http请求是客户端发起请求,服务端响应,然后断开连接,客户端发起,服务端响应的一种循环。而websocket协议是客户端发起连接后,就会一直保持连接,期间客户端和服务端都可以向对方发送数据,直到连接关闭。 websocket其他的一些特点: (1)建立在 TCP 协议之上,服务器端的实现比较容易。 (2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。 (3)数据格式比较轻量,性能开销小,通信高效。 (4)可以发送文本,也可以发送二进制数据。 (5)没有同源限制,客户端可以与任意服务器通信。 (6)协议标识符是 ws (如果加密,则为 wss ),服务器网址就是 URL。 应用场景 试想一下这样的场景,我们需要实现一个支付成功后

[Linux]阿里云万网域名-腾讯云服务器nginx下配置免费的https

旧巷老猫 提交于 2020-08-17 20:05:33
我的域名是在阿里云万网上购买的,服务器是部署在腾讯云上,可以按照下面的步骤配置https 首先登陆阿里云网站控制台,申请免费证书,免费证书只能 单一域名 。测试地址如:https://gofly.sopans.com/ 申请稍等几分钟就能通过 把证书下载到本地,然后上传到腾讯云的服务器上,配置nginx就可以了 nginx的配置如下,注意证书的地址和域名的配置,同时也能支持websocket wss server { listen 443 ssl http2; ssl on; ssl_certificate conf.d /cert/ 4263285_gofly.sopans.com.pem; ssl_certificate_key conf.d /cert/ 4263285_gofly.sopans.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE -RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:! RC4; ssl_protocols TLSv1 TLSv1. 1 TLSv1. 2 ; ssl_prefer_server_ciphers on; #listen 80 ; server_name gofly.sopans.com; access

FTP上传软件,FTP上传软件连接的办法,配置方式

╄→尐↘猪︶ㄣ 提交于 2020-08-17 08:56:10
使用FTP上传工具进行远程连接 FTP用于在FTP服务器和FTP客户端之间上传和下载文件,它最优秀的功能就是可以批量管理,可以将文件从一个主机传输到另一个主机。 地址: FTP上传工具 使用FTP上传工具最优秀的功能就是可以批量管理、批量上传,适用于Windows系统,Linux系统和云服务器等,能极大的提高站长及服务器运维人员工作效率,同时FTP上传工具还是vnc客户端,真正实现了一站式管理,非常方便。 public void putTxtToFTP() { System.out.println("开始执行定时器任务:维系一键体检订单量!"); alendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); //得到前一天 Date date = calendar.getTime(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); String yesterday = df.format(date); StringBuffer yjtjOrderTxt = new StringBuffer(); yjtjOrderTxt.append("yjtywx_").append(yesterday).append(".txt");