ToB企服应用市场:ToB评测及商务社交产业平台
标题:
workerman即时通讯聊天系统
[打印本页]
作者:
吴旭华
时间:
2023-10-23 08:50
标题:
workerman即时通讯聊天系统
项目地址
HTTP
http协议
超文本传输协议
无状态协议
基于tcp协议的一个应用层的协议
http是单向的,浏览器发起向服务器的连接,服务器预先并不知道
http协议工作过程
客户端和服务端建立连接(三次握手),http开始工作
建立连接后客户端发送给请求服务器
服务器接受到请求后,给予相应的响应信息
WebSoket
websoket协议
websocket是H5提出的在单个TCP协议上进行的全双工通讯协议
实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实事通讯的目的
WebSokcet是一个持久化的协议
工作过程
客户端发送http请求,经过三次握手,建立TCP连接,在http 请求里面存放 websocket 支持的版本号信息
服务器接收请求,同样以http协议回应
连接成功,客户端与服务器建立持久性的连接
websocket 与 http 差异
相同点
都是基于tcp的,都是可靠的性传输协议
不同点
websocket是双向通信协议,模拟socket协议,可以双向发送或接受信息
websocket是持久化连接,http 是短连接
websocket是有状态的,http 是无状态的
websocket 连接之后服务器和客户端可以双向发送数据,http只能是客户端发起一次请求之后,服务器才能返回数据
轮询
过程
客户端发起长轮询,如果服务端的数据没有发生变化,就会 hold 住请求,知道服务端的数据发生变化
优点 是解决了http不能实时更新的弊端,实现了 "伪-长连接"
轮询的本质依然是 request response
弊端
推送延迟
服务端压力
推送延迟和服务端压力无法中和
websocket改进
JS Websocket
简单示例
ws = new WebSocket('ws://127.0.0.1:2000');
//当 websocket 创建成功后 触发onopen事件
ws.onopen = function () {
var data = {};
data.type = 'login';
//标识 客户还是客服
data.group = 'member';
//发送信息
ws.send(JSON.stringify(data));
}
//收到服务端发来的消息 触发 onmessage
ws.onmessage = function (e) {
var data = JSON.parse(e.data);
}
复制代码
Workerman基础
workerman手册
安装
Composer安装:
composer require workerman/workerman
启动停止
# 以debug(调试)方式启动
php start.php start
# 以daemon(守护进程)方式启动
php start.php start -d
# 停止
php start.php stop
# 重启
php start.php restart
# 平滑重启
php start.php reload
# 查看状态
php start.php status
复制代码
简单示例
实例一、使用HTTP协议对外提供Web服务
创建start.php文件
[code]
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4