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

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

如下:

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

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

comet(基于HTTP长连接的"服务器推")实现起来更加方便,而且兼容所有的浏览器。comet也有好几种实现方式,如iframe,httplongrequest等。

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

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

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

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

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

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

HTML5 WebSocket实现消息推送有以下两种方法:

长连接:在页面里嵌入一个隐蔵iframe,将这个隐蔵iframe的src属性设为对一个长连接的请求或是采用xhr请求,服务器端就能源源不断地往客户端输入数据。 优点:消息即时到达,不发无用请求;管理起来也相对便。

Flash Socket:在页面中内嵌入一个使用了Socket类的 Flash 程序JavaScript通过调用此Flash程序提供的Socket接口与服务器端的Socket接口进行通信,JavaScript在收到服务器端传送的信息后控制页面的显示。 优点:实现真正的即时通信,而不是伪即时。

实现消息推送可以试一试极光。极光是国内领先的移动开发者服务提供商,近十年里,极光紧密围绕移动开发者的需求,打造了一系列针对开发者运营、增长及变现的产品。


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

原文地址: http://outofmemory.cn/zaji/7049972.html

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

发表评论

登录后才能评论

评论列表(0条)

保存