栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

websocket 实现简易聊天室

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

websocket 实现简易聊天室

websocket学习
    • 简单的例子
    • Websocket握手
    • 客户端
    • 服务器端

简单的例子 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
};
服务器端
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号