分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

websocket基本概念

发布时间:2023-09-06 01:47责任编辑:蔡小小关键词:websocket

(1)websocket 协议 与 http协议

websocket 协议,双工通道 ?socket连接不断开http 协议 ,只能请求响应 (用户主动获取) ??socket连接断开都是基于socket ???????????---- 客户端都是浏览器

(2)轮询

 ???一般用户量少的 都是用 websocket来做即时通讯轮询 --- ?一直发请求,定死的,2秒钟取一次长轮询 --- 请求之后,没有新消息,夯住,30秒之内没有新消息,断开 ???????????重新请求,如果有新消息,立刻返回消息

(3) ws 协议小例

创建 socket 服务端 ???????import socket ???????sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) ???????sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) ???????sock.bind(('127.0.0.1',8002)) ???????sock.listen(5) ???????conn,addr = sock.accept() ???????data = conn.recv(1024) ???????print(data) 创建 scoket 客户端 ????<script type="text/javascript"> ???????????var socket = new WebSocket("ws://127.0.0.1:8002") ???// ???????浏览器 会立即创建一个 socket对象 ,连接 ???????</script> ???</body>但是服务端 必须返回固定格式的内容给浏览器 ,才能保证 正常的连接【握手信息】魔法字符串

(5) WebSocket协议是基于TCP的一种新的协议。

WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。
它实现了浏览器与服务器全双工(full-duplex)通信。
其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信。

请求和响应的【握手】信息需要遵循规则: ???从请求【握手】信息中提取 Sec-WebSocket-Key ???利用magic_string 和 Sec-WebSocket-Key 进行hmac1加密,再进行base64加密 ???将加密结果响应给客户端注:magic string为:258EAFA5-E914-47DA-95CA-C5AB0DC85B11

(6) tornado 实现 websocket

Tornado是一个支持WebSocket的优秀框架,当然Tornado内部封装功能更加完整。

(7)客户端和服务端传输数据时,需要对数据进行【封包】和【解包】

客户端的JavaScript类库已经封装【封包】和【解包】过程,但Socket服务端需要手动实现。第一步:获取客户端发送的数据【解包】 Payload第二步:向客户端发送数据【封包】

websocket基本概念

原文地址:https://www.cnblogs.com/big-handsome-guy/p/8661159.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved