-
前言
Restful和WebSocket的区别与意义在逻辑上理解起来并不难,但是关于怎么使用WebSocket总是一头雾水,restfule理解起来很直观:
df = restful_get_data result = deal_data(df)
但是websocket是推过来的数据,数据不成块,怎么用呢?
-
websocket概念
-
几个常见概念
- 握手:握手是确保服务器与客户端同步的过程;
- websocket(Web套接字):web套接字被定义为服务器和客户端之间的双向通信,实现客户端与服务端的实时通讯;
- URL:HTTP有自己的模式,WebSocket也有自己的模式:
- 全双工:来自两端的通信具有相当快的速度。
websocket之前,web客户端和服务器之间的所有通信仅依赖于HTTP。
websocket是一个基于TCP的协议;一个传输层。
WebSocket是一种有状态协议,而HTTP是无状态协议。
- 建立Web Socket连接的步骤如下:
- 客户端通过称为Web Socket握手的进程建立连接;
- 该过程从客户端向服务器发送常规HTTP请求开始;
- 请求升级标头。在此请求中,它通知服务器该请求是针对Web Socket连接的;
- Web Socket URL使用ws方案;
初始请求标头的一个简单示例如下:
GET ws://websocket.example.com/ HTTP/1.1 Origin: http://example.com Connection: Upgrade Host: websocket.example.com Upgrade: websocket
-
websocket事件
四个主要的Web Socket API事件,每个事件都通过分别实现
onopen
、onmessage
、onclose
、onerror
等函数来处理:-
打开
当在客户端和服务器之间建立了连接,就会从Web Socket实例触发
open
事件。它称为客户端和服务器之间的初始握手。当建立连接就引发的事件被称为onopen
。onopen
是指客户端和服务器之间的初始握手。扫描二维码关注公众号,回复: 10991381 查看本文章 -
消息
通常在服务器发送一些数据时发生消息事件。服务器发送给客户端的消息可以包括纯文本消息,二进制数据或图像。无论何时发送数据,都会触发
onmessage
函数。此事件充当客户端对服务器的耳朵,每当服务器发送数据时,都会触发
onmessage
事件。 -
关闭
关闭事件标志着服务器和客户端之间通信的结束。在
onclose
事件的帮助下,可以关闭连接。在onclose
事件的帮助下标记通信结束后,服务器和客户端之间无法进一步传输消息。关闭事件也可能由于连接不良而发生。 -
错误
某些错误的错误标记,在通信期间发生。它是在
onerror
事件的帮助下标记的。在错误之后总是会终止连接。事件实现 作用 onLoad 创建对象初始化连接 onOpen 与服务器建立连接,并发送状态 onMessage 显示信息 onSend 向服务器发送消息
-
-
websocket操作
支持两个主要操作:
-
websocket的生命周期
-
websocket与restful
websocket与restful并列存在,但仔细区分,restful是基于http协议的api,实际上websocket直接对应的是http,websocket和http都是协议,因此会有一个概念对应偏差。
在restful下,所有HTTP通信都由客户端引导。
-
websocket与websockets
在代码中能看到这两个包:
import websocket # 是一个websocket服务的client端模块,websocket-client import websockets # 同时包含server端和client端
就订阅数据来说,先用websocket就可以了。
-
websocket-client(websocket)
github上有基础用法介绍。
-
websockets(官网 易百教程)
参见易百教程。
-
References
理解Python使用WebSocket的逻辑生态
猜你喜欢
转载自blog.csdn.net/The_Time_Runner/article/details/105646308
今日推荐
周排行