php怎么才能实现即时通讯?

php怎么才能实现即时通讯?,第1张

如下:

php实现实时通信一般有两种方式:socket或comet。

socket是比较好的解决方案,问题在于不是所有的浏览器都兼容,服务器端实现起来也稍微有点麻烦。

comet(基于>

js用定时器周期性向服务器发送请求,模拟实时刷新。这里分长轮询和短轮询。

区别是:长轮询在没有数据更新时,不会立刻返回结果而是在服务器端hold住,直到有数据更新再返回结果。

短轮询无论数据是否有更新,都立刻返回结果。

这种做法服务器开销较大,2websokect,html5的新特性,可以在前后端建立双向通信

缺点是部分浏览器不支持。b/s架构的系统其实实现即使通信是比较有难度的,因为很难实现服务器推送

目前主流是用js轮询实现,但只要能通过代码减小服务器开销,也能达到比较好的效果。

这要求刷新的窗口有一个名称,例如windowA。在要关闭的页面加入
<body onunload="javascript:windowAlocationreload()">
如果要刷新的是将要关闭页面的父窗口,则可以在要关闭的页面加入
<body onunload="javascript:windowopenerlocationreload()">

阿里使用nodejs的场景有很多。实时应用:如在线聊天,实时通知推送等等(如socketio)分布式应用:通过高效的并行I/O使用已有的数据。工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序。游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架),利用稳定接口提升Web渲染能力。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10643263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存