PHP即时通讯的两种方案和区别

本文探讨了PHP实时通讯的两种方案:WebSocket和定时异步请求。WebSocket提供高即时性但可能面临兼容性和实现复杂性问题;而定时异步请求简单快速,适用于实时性要求不高的场景,但数据需手动确认,且可能存在频繁请求的问题。两者各有优缺点,开发者需根据实际需求选择合适的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来说说PHP的实时通讯,一般我们都是使用websocket,他的优点也是比较明显:即时性高,可以很好地解决对实时性要求比较高的场景,缺点就是:不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦。

但是部分场景对实时性要求不是特别的高的,又希望快速开发的,今天我们就来说下该方法

js用定时器周期性向服务器发送请求,模拟实时刷新!

拿一个例子来说下,是一个饭店的下单语音提示类的DEMO,仅做参考。

里面大概思路的话,就是通过js匿名函数再以自调用的形式,根据设定的定时器设定指定时间,进行跳转查询,根据回调结果,为语音赋指定的路径,来播放不同场景的语音。

以及注册的一系列的监听函数,以及语音可以播报后移出事件,因为我们是定时器,如果不移除事件的话,会没隔10秒就播放一次语音。

以及ios系统不能主动交互,需要手动绑定移动端触摸事件,详细的话请点击图片查看代码分析。

好处的话,一目了然,代码少,易理解,可以实现快速开发,满足一些实时性不高的场景,缺点的话就是,所提示的数据需要我们手动的去确认下,否则该数据会一直存在提示,那么肯定有人问,那设置了定时器,不是每个10秒都在请求,晚上也在不停请求,这怎么办?

方法很多,其实我们可以通过宝塔上的定时任务去设置,也可以写判断,获取到当前时间,如果当前时间不是营业时间,就暂停或者不向下走即可。

最后总结下区别:

定时异步请求:查询到的数据需要人为的确定下,否则的话会一直进行提示,即时性不是特别的高,根据设置的定时时间来查询

PHP写得及时聊天工具,结构设计的很好,有源码。是学习PHP的好资料 JeCat-Jabber(简称:JJ) 是一款完全由 PHP 开发的即时通讯软件。JJ 采用 Gtk2 图像界面库来实现用户界面。顾名思义 JJ 使用 Jabber 协议(XMPP) ,因此可以 包括 GTalk 在内的 其它任何 XMPP 即时通讯软件 聊天。 JJ 项目的初衷在于 演示 桌面窗口 PHP 多任务处理,这两大 在长期在 PHP程序员 眼中 几乎是“不可能”的任务。 同时 也是 PHP框架 JCAT 的演示项目,JCAT 是一款同时 支持 Web 桌面 的 PHP框架,按照计划 将在稍后 发布。 JJ 的特点 > 跨平台。JJ 在Linxu 环境下 开发,在 Windows 平台上也一样可以正常使用。 > 实用 标准的 XMPP协议,能够与其它的 Jabber 软件互相通讯,例如 Google GTalk、Pidgin、PSI、Spark、Pandion,以及其它的 Jabber网页聊天窗口 > 可更换界面皮肤,皮肤样式文件 采用 类似 CSS 的语法,便于美工独立工作。 > 纯 PHP 实现,从 通讯协议 到 图形界面,全部都由 PHP 开发,如果你正好是一名 PHP 程序员,你可以驾轻就熟地在 JJ 之上进行二次开发。 > 可整合到你的网站中。JJ 近期的完善 会使 JJ 更容易地 为你的网站所有,让你的网站 也可以有像 淘宝旺旺 那样的 专用聊天工具 [ PHP 图像界面 ] JJ 采用 Gtk图像界面库,Gtk库 中 提供了丰富的 图形界面窗体(Widget),以及灵活方便的 窗体布局方式。 Gtk 本身 被广泛应用在 Linux 平台上,Linux 最著名 的桌面环境之一 Gnome 即是众多 Gtk软件 的集中展示。 PHP-Gtk2 将 Gtk 窗体绑定到 PHP 语言中,允许程序员 通过 PHP语言 来创建、显示、销毁 Gtk 窗体。PHP-Gtk 项目由 PHP创始人 亲自负责,并且自项目创立一来 一直持续发展,目前已经支持 最新的 Gtk2。 [ PHP 多任务处理 ] PHP 直到 5.2都没有提供 稳定可靠的 多线程特性。 但 PHP 仍然有能力进行多任务处理。 多线程 因为涉及到 线程安全、线程同步 等 困难,在 支持线程的语言中,也常常建议尽量避免使用。 Linux 的多路复用 是 更稳定安全的 多任务模式,从 PHP5.0 开始 多路复用 支持 Windows 平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值