websocket接口测试

一、websocket协议

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。HTML5 WebSocket 设计出来的目的就是要取代轮询和 Comet 技术,使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

我们知道http是短连接的,反复建立和销毁连接比较耗费资源,另外http协议经常头部内容比主体内容还长也比较浪费资源;websocket可以认为就是一个内容使用载荷固定格式的socket长连接。

1.1 websocket协议报文

在这里插入图片描述
请求格式和 HTTP 请求很相似,但是还是稍有不同。
请求信息:
1、“Upgrade:WebSocket”:表示这是一个特殊的 HTTP 请求,请求的目的就是要将客户端和服务器端的通讯协议从 HTTP 协议升级到 WebSocket 协议。
2、“Sec-WebSocket-Key”:客户端浏览器需要向服务器端提供的握手信息。
应答消息:
1、“Upgrade:WebSocket”:同请求消息。
2、“Sec-WebSocket-Accept”:服务器端解析这些头信息,并在握手的过程中依据这些信息生成一个 16 位的安全密钥并返回给客户端,以表明服务器端获取了客户端的请求,同意创建 WebSocket 连接。一旦连接建立,客户端和服务器端就可以通过这个通道双向传输数据了。

1.2 webscoket的属性、方法和事件

在这里插入图片描述

二、客户端脚本编写

2.1 Python3.5版客户端代码

首先安装websocket-client-py3模块:

pip install websocket-client-py3
2.2.1 长连接调用方式

长连接关键方法:
ws.run_forever()
python的仿js websocket写法方式,自动重连发送指令,连接时间明显减少,基本做到无遗漏数据,与HTML js的ws连接实现一样。

import websocket
from websocket import ABNF
import json
import _thread
import time

def on_message(ws, message):
    print(message)


def on_error(ws, error):
    print(error)


def on_close(ws):
    print("close connection")


def on_open(ws):
    def run(*args):
        pass
    #     content = {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值