WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工(full-duplex)通信。其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信。
一、Socket通讯的步骤
服务端:
1、服务端开始socket,监听IP和端口号;
2、服务端收到客户端的连接请求,允许连接;
5、服务端接收到特殊字符,特殊字符+magic string:258EAFA5-E914-47DA-95CA-C5AB0DC85B11,进行加密;
6、将加密后的字符串返回客户端;
客户端(浏览器):
2、客户端发起连接请求(IP和端口);
4、客户端生成一个xxx,向服务端发送一段特殊值(sha1加密,特殊值:magic_string:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11")
客户端向服务端发送一串特殊字符;
7、客户端收到加密的值,然后特殊字符+magic string:258EAFA5-E914-47DA-95CA-C5AB0DC85B11,进行加密,加密后的值与接收到的值进行比对,
两者一致验证成功;
二、Socket通讯的详细步骤
1、启动服务端
importsocket
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, address =sock.accept()
data= conn.recv(1024)print(data) ###
View Code
2、客户端连接
varws= newWebSocket("ws://127.0.0.1:8002")