|
项目地址
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] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|