1 长轮询 发过去 一直等着 兼容性比较好业内用着比较多的还是
web 单项通道 由浏览器发起,服务器只是响应 http 协议规定这样的
-http 链接短 链接响应断开,只能请求和响应
-websocket socket 实现的,目前浏览器兼容性都有,概念已经有了,但是目前开始应用起来了
-websocket 双工通道 == socket 实现的 ,客户端请求,服务端响应,也能主动推送响应(聊天室) socket 创建连接,不断开
websocket 协议
===============
socket 入手
-服务端(socket服务器)
1. 开启socket,监听ip和端口
3.允许连接成功
5 服务端接收到特殊值(进行加密sha1,migic string="不变的值")
6 加密的值发送客户端
- 客户端(浏览器)
2.客户端连接服务端(ip和端口)
*4 向服务端发送一段特殊值
7客户度那接收到加密值
+++++++++++++收发数据+++++++++++
HTML (浏览器)
<script>
ws = new WebSocket(url="ws://127.0.0.1:80");
</script>
服务器端
socket 创建
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.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(8096)
获取握手消息,magic string,sha1 加密
发送客户端
conn.send("123")