- 简单的例子
- Websocket握手
- 客户端
- 服务器端
客户端发送:
GET / HTTP/1.1 Host: 192.168.1.213:8999 Connection: Upgrade Upgrade: websocket Origin: http://localhost Sec-WebSocket-Version: 13 Sec-WebSocket-Key: xmcdcwN39t4dE4YsqCkqzA==
服务器端相应:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Sec-WebSocket-Version: 13 Connection: Upgrade Sec-WebSocket-Accept: XjYWBVMYrP+XK8AlZ8CVRuaWBy4=
-
Connection 必须设置 Upgrade,表示客户端希望连接升级。
-
Upgrade 字段必须设置 Websocket,表示希望升级到 Websocket 协议。
-
Sec-WebSocket-Key 是随机的字符串。
-
Sec-WebSocket-Accept 服务器端拿到客户端Sec-WebSocket-Key传过来的随机字符串,然后拼接"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",进行sha1计算后,在进行base64编码,返回给客户端:
base64_encode(sha1(Sec-WebSocket-Key的值 . "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", true))客户端
创建 WebSocket 对象
var ws = new WebSocket("ws://192.168.1.213:8999");
监听服务器返回的数据
ws.onmessage = function (e) {
// ---
}
往服务器端发送数据
ws.send(JSON.stringify(data));
关闭连接
ws.onclose = function() {
// 关闭 websocket
};
服务器端



