当前位置: 首页 > news >正文

利用淘宝联盟做网站赚取佣金厦门人才网

利用淘宝联盟做网站赚取佣金,厦门人才网,2018网站流量怎么做,国和建设集团网站协议说明 WebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。Websocket主要用在B/S架构的应用程序中,在 WebSocket API 中,浏览器和服务器只…

协议说明

WebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。Websocket主要用在B/S架构的应用程序中,在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

WebSocket 协议在2008年诞生,2011年成为国际标准。现在最新版本浏览器都已经支持了。

WebSocket 是一种应用层协议。

WebSocket 的典型特点:

  • 基于 TCP 协议的应用层协议,实现相对简单

  • 单个TCP连接上进行全双工通信

  • 兼容 HTTP 协议,默认端口也是80和443

  • 握手阶段采用 HTTP 协议,能通过各种 HTTP 代理服务器

  • 数据格式比较轻量,性能开销小,通信高效

  • 可以发送文本和二进制数据

  • 没有浏览器的同源限制

  • 协议标识符是 wswss,网址就是 URL,例如:ws://mashibing.com:80/some/path

websocket的典型场景:

  • 即时通信

  • 协同编辑/编辑

  • 实时数据流的拉取与推送

websocket推送和浏览器端轮询

在BS开发领域,若需要浏览器B即时得到服务器的状态更新,常使用两个方案:

  1. 浏览器端轮询

  2. 服务器端推送

浏览器轮询:浏览器端,当需要获取最新数据状态时,利用脚本程序循环向服务端发送请求。

服务器推送,服务器端,当状态改变时,将数据发送到浏览器端。

如图所示:

image.png

如果需要服务器端推送,则需要使用websocket协议。当然HTTP/2版本,也支持服务器端推送,但实现上以推送静态资源为主,不能基于业务逻辑推送特定的消息,因此当前的普及使用率websocket还是主流。

websocket 与 http 的对比

WebSocket通常和HTTP进行对比,如图:

image.png

WebSocket和HTTP 的相同点:

  • 应用层协议

  • B/S 架构中使用

  • 基于TCP协议

  • 端口默认都是:80和443

WebSocket和HTTP 的不同点:

WebSocketHTTP
通信模式双向单向
握手双方协商浏览器发起
服务器端推送支持不支持。H/2支持部分

WebSocket和HTTP 的联系:

websocket是在http基础上握手得到的。

WebSocket握手过程

通过HTTP请求响应,中的头信息,完成websocket握手,如图:

image.png

请求头如下:

 GET /chat HTTP/1.1Host: server.mashibing.comUpgrade: websocketConnection: UpgradeSec-WebSocket-Key: x4JJHMbDL22zLk1GBhXDw==Sec-WebSocket-Protocol: chatSec-WebSocket-Version: 13Origin: http://mashibing.com

其中:

 # 升级为 websocketUpgrade: websocketConnection: Upgrade# 一个 Base64 encode 的值,有于验证服务器端是否支持websocketSec-WebSocket-Key: x4JJHMbDL22zLk1GBhXDw==# 用户协议,可以视为不同业务逻辑的频道Sec-WebSocket-Protocol: chat# 协议版本,13是当前通用版本,几乎不需要更改Sec-WebSocket-Version: 13

基于以上请求头,服务器端,就知道需要将协议升级为websocket协议,并提供一些验证信息。

响应头如下:

 HTTP/1.1 101 Switching Protocols# 协议升级Upgrade: websocket# 连接状态Connection: Upgrade# WebSocket服务端根据Sec-WebSocket-Key生成Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=# WebSocket协议用户协议Sec-WebSocket-Protocol: chat

基于以上响应头,浏览器端就知道服务器端升级成功,并通过了验证。

至此,B/S端可以基于该连接,完成websocket双向通信了。

WebSocket的状态码

状态码名称描述
0–999-保留段, 未使用。
1000CLOSE_NORMAL正常关闭; 无论为何目的而创建, 该链接都已成功完成任务。
1001CLOSE_GOING_AWAY终端离开, 可能因为服务端错误, 也可能因为浏览器正从打开连接的页面跳转离开。
1002CLOSE_PROTOCOL_ERROR由于协议错误而中断连接。
1003CLOSE_UNSUPPORTED由于接收到不允许的数据类型而断开连接 (如仅接收文本数据的终端接收到了二进制数据)。
1004-保留。 其意义可能会在未来定义。
1005CLOSE_NO_STATUS保留。 表示没有收到预期的状态码。
1006CLOSE_ABNORMAL保留。 用于期望收到状态码时连接非正常关闭 (也就是说, 没有发送关闭帧)。
1007Unsupported Data由于收到了格式不符的数据而断开连接 (如文本消息中包含了非 UTF-8 数据)。
1008Policy Violation由于收到不符合约定的数据而断开连接。 这是一个通用状态码, 用于不适合使用 1003 和 1009 状态码的场景。
1009CLOSE_TOO_LARGE由于收到过大的数据帧而断开连接。
1010Missing Extension客户端期望服务器商定一个或多个拓展, 但服务器没有处理, 因此客户端断开连接。
1011Internal Error客户端由于遇到没有预料的情况阻止其完成请求, 因此服务端断开连接。
1012Service Restart服务器由于重启而断开连接。 [Ref]
1013Try Again Later服务器由于临时原因断开连接, 如服务器过载因此断开一部分客户端连接。 [Ref]
1014-由 WebSocket
1015TLS Handshake保留。 表示连接由于无法完成 TLS 握手而关闭 (例如无法验证服务器证书)。
1016–1999-由 WebSocket 标准保留以便未来使用。
2000–2999-由 WebSocket 拓展保留使用。
3000–3999-可以由库或框架使用。 不应由应用使用。 可以在 IANA 注册, 先到先得。
4000–4999-可以由应用使用。

服务端编码

需要:

  • HTTP服务器,net/http 或者 gin(或其他HTTP框架)

  • 处理WebSocket协议的包,GitHub - gorilla/websocket: Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.

其中:GitHub - gorilla/websocket: Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go. 是github上Go语言Star数最高的websocket包,推荐使用。

安装gorilla/websocket:

 go get github.com/gorilla/websocket

实现流程:

  1. 创建HTTP服务器

  2. 提供特定路由处理websocket协议

  3. 升级为ws协议

  4. 处理Websocket消息

    1. 发送消息

    2. 接收消息

编码实现:

 ​

测试:

 ​
http://www.mmbaike.com/news/96410.html

相关文章:

  • 成都 网站建设凤凰军事新闻最新消息
  • 做湲网站如何推广微信公众号
  • 卸载 wordpress青岛网站关键词排名优化
  • html5网站模板百度收录平台
  • 国外地推如何开展东莞seo关键词
  • 开发动态网站网络营销的基本方法有哪些
  • 如何使用c 进行网站开发seo优化咨询
  • 百度统计会对原网站产生影响吗宁波网站推广专业服务
  • 做淘宝美工的网站网站开发框架
  • wordpress英文仿站教程公司怎么做网站推广
  • 家庭电脑做网站荆州百度推广
  • 在线做头像网站有哪些网络广告营销的典型案例
  • 长沙网站建设哪个好什么软件可以排名次
  • wordpress多站点sitemap百度信息流效果怎么样
  • 网站建设漠环熊掌号秦皇岛百度推广
  • 江西网站设计哪家靠谱网店代运营需要多少钱
  • 怎么做一个个人网站杭州关键词自动排名
  • 宝塔搭建wordpress访问很慢百度seo词条优化
  • 门户网站建设重要性营销策划推广
  • 团购网站优化如何制作微信小程序店铺
  • 大型网站改版百度平台我的订单查询在哪里
  • 成都网站成都网站制作公司外包公司的优势和劣势
  • 拖拽式建站源码福州seo推广公司
  • 建网站深圳2024年将爆发新瘟疫
  • 网站首页title中国十大电商平台
  • 做网站什么内容销售网站
  • 做seo推广网站新媒体运营怎么自学
  • 网站制作哪种好岳阳seo公司
  • 公司平台网站建设网络营销常用的工具和方法
  • 动态网站开发语言的特点口碑营销的步骤