位置: 编程技术 - 正文

基于Swoole实现PHP与websocket聊天室(php swoft)

编辑:rootadmin

推荐整理分享基于Swoole实现PHP与websocket聊天室(php swoft),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php easyswoole,swow php,php easyswoole,php+swoole,php swoft,php+swoole,swow php,swow php,内容如对您有帮助,希望把文章链接给更多的朋友!

websocket

Websocket只是一个网络通信协议

就像 http、ftp等都是网络通信的协议;不要多想;

相对于HTTP这种非持久的协议来说,Websocket是一个持久化网络通信的协议;

WebSocket和HTTP的关系

有交集,但是并不是全部。

Websocket只是借用了HTTP的一部分协议来完成一次握手。(HTTP的三次握手,此处只完成一次)

http和websocket 请求头对比:

HTTP:

原来的时候,客户端通过http(骑马)带着信请求服务器,服务器处理请求(写回信),再次通过http(骑马)返回;链接断开;

WebSocket:

客户端通过http(骑马)带着信请求服务器,但同时,携带了Upgrade:websocket和Connection:Upgrade(两根管子),服务器如果支持WebSocket协议(有两根管子的接口),使用Websocket协议返回可用信息(丢弃马匹),此后信息的传递,均使用这两个管子,除非有一方人为的将管子切断;若服务器不支持,客户端请求链接失败,返回错误信息;

http和websocket 响应头对比:

websocket和ajax轮询、long poll的区别

首先是 ajax轮询 ,ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息

场景再现:

客户端:啦啦啦,有没有新信息(Request)

服务端:没有(Response)

客户端:啦啦啦,有没有新信息(Request)

服务端:没有。。(Response)

客户端:啦啦啦,有没有新信息(Request)

服务端:你好烦啊,没有啊。。(Response)

客户端:啦啦啦,有没有新消息(Request)

服务端:好啦好啦,有啦给你。(Response)

客户端:啦啦啦,有没有新消息(Request)

服务端:。。。没。。。。没。。没有

long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不在论述;

从上面可以看出,轮询其实就是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。同时,http的每一次请求与响应结束后,服务器将客户端信息全部丢弃,下次请求,必须携带身份信息(cookie),无状态性;

Websocket的出现,干净利落的解决了这些问题;

所以上面的情景可以做如下修改。

客户端:啦啦啦,我要建立Websocket协议,需要的服务:chat,Websocket协议版本:(HTTP Request)

服务端:ok,确认,已升级为Websocket协议(HTTP Protocols Switched)

客户端:麻烦你有信息的时候推送给我噢。。

基于Swoole实现PHP与websocket聊天室(php swoft)

服务端:ok,有的时候会告诉你的。

客户端:balab开始斗图alabala

服务端:苍井空ala

客户端:流鼻血了,我擦……

服务端:哈哈布尔教育牛逼啊哈哈哈哈

服务端:笑死我了哈哈

Swoole

但是,为了用PHP配合HTML5完成一次WebSocket请求和响应,哥走过千山万水,在密林深处,发现了Swoole :

PHP语言的异步、并行、高性能网络通信框架,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。

支持的服务:

HttpServer

WebSocket Server

TCP Server

TCP Client

Async-IO(异步)

Task(定时任务)

环境依赖:

仅支持Linux,FreeBSD,MacOS,3类操作系统

Linux内核版本2.3.以上

PHP5.3.以上版本

gcc4.4以上版本或者clang

cmake2.4+,编译为libswoole.so作为C/C++库时需要使用cmake

安装:

必须保证系统中有以下这些软件:

php-5.3. 或更高版本

gcc-4.4 或更高版本

make

autoconf

Swoole是作为PHP扩展来运行的

安装(root权限):

cd swoole

phpize

./configure

make

sudo make install

配置php.ini

extension=swoole.so

想研究Swoole的同学,自己去看手册(虽然写的不好,但是还是能看懂的)

做一个聊天室

服务器端:socket.php

客户端:Socket.html

标签: php swoft

本文链接地址:https://www.jiuchutong.com/biancheng/301542.html 转载请保留说明!

上一篇:浅析php如何实现App常用的秒发功能(php zmq)

下一篇:Laravel最佳分割路由文件(routes.php)的方式(laravel分页)

  • 增值税发票综合服务平台验证口令失败
  • 先发表还是先出版
  • 不征税收入确认递延收益如何填报
  • 税金及附加减半征收政策2022最新
  • 代开发票含税价怎么核算为不含税发票
  • 企业筹集资金的最常见及最主要的方式是()
  • 货物运费包含哪些项目
  • 运输费增值税专用发票几个点
  • 充电桩收入属于什么类别
  • 出口退税自查中的“四自三不见”是指什么
  • 超过标准的职工教育经费
  • 奖金属于应付职工薪酬
  • 车辆商业险和交强险可以分开买吗
  • 开具发票财务需要管理吗?
  • 建筑业预交的增值税
  • 免抵税额计入什么科目
  • 附加税记入什么科目
  • 资本公积转增实收资本所有者权益会变吗
  • 外包物流适用范围
  • 企业停产没有收入,费用可以计入长期待摊费用吗
  • 工会年度收入支出表
  • 民办非企业的注册资金最低限额
  • windows的记事本的扩展名
  • 购进农产品发生非正常损失
  • 向银行借入长期借款50万元
  • 原始凭证的分类依据有哪些?分别能分为哪些类型?
  • loadprofiles什么意思
  • 计提公积金账务处理需要什么凭证
  • uni app面试题
  • vue运行报错怎么解决
  • php的二维数组
  • 更换电脑金税盘的数据如何导入新电脑
  • 保姆级官方yolov7的训练自己的数据集以及项目部署
  • php数组中某个元素出现的个数
  • react组件框架
  • 数学建模 比赛
  • 10年未被强制修复!黑客利用Windows旧漏洞攻击通信公司并分发恶意文件
  • 固定资产折旧四种方法公式
  • 发票违法行为的认定
  • 收付实现制与权责发生制的例题
  • 发票章与开票方名称不一致是什么情况
  • 报税营业成本包括什么
  • 帝国主义
  • 小规模纳税人差额征收税率是多少
  • 主营业务成本可以设明细科目吗
  • 收购企业怎么做账
  • 销售不动产统一发票英文翻译
  • sql server 2008 安装 1935
  • 小规模如何缴纳税款
  • 出口货款收不回怎么办
  • 收电商费会判刑吗
  • 非本公司员工的火车票可以报销么
  • 债券溢价摊销有什么影响
  • 劳务公司 成本
  • 企业里面不征税的有哪些
  • 计提附加税减半征收会计分录
  • 服务业收入的会计分录
  • 醒狗音乐免费下载歌曲2017最新版
  • sql server2008启动
  • wermgr.exe是什么进程
  • ccs 运行
  • 苹果mac 最新系统
  • centos 离线安装git
  • ghost硬盘对拷反了
  • windowsxpwifi
  • Win7摄像头怎么打开
  • image driver
  • 苹果mac系统怎么更新
  • win10系统预览版
  • win7系统所有软件打不开
  • linux awk命令使用实例
  • unity游戏开发的技术路线有哪些
  • vue.js有哪些组件
  • 超级给力的好人有哪些
  • jquery实现ajax提交表单信息的简单方法(推荐)
  • 2012 05-26 Unity3D研究院之两种方式播放游戏视频(二十五) 雨松MOMO
  • javascript+
  • 增值税红字发票怎么做账
  • 企业未代扣代缴个税能退税吗
  • 增值税一般纳税人资格登记表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设