Rumah >pembangunan bahagian belakang >tutorial php >PHP 适合做 app 即时通讯的服务端么?

PHP 适合做 app 即时通讯的服务端么?

WBOY
WBOYasal
2016-06-06 20:22:041565semak imbas

一个朋友想做 Android 版的即时通讯 app,刚好对 PHP 也会一些,想问下大家 PHP 适合做即时通讯的服务端么?有何优劣之处?

回复内容:

一个朋友想做 Android 版的即时通讯 app,刚好对 PHP 也会一些,想问下大家 PHP 适合做即时通讯的服务端么?有何优劣之处?

说实话,如果只用传统的php 来做即时通讯是有一些勉强的。php在处理密集的高并发以及长连接没有什么优势。
业界普遍的方案是的nodejs来做。但是并不代表改造后的php不能胜任。
php 有个 扩展 叫swoole 可以帮你实现这个一个即时通讯的服务端,据说Qps已经秒了nodejs。推荐去了解一下,而且有可用即时通讯的源码。

合适的不能再合适了。

基于Swoole的PHPWebIM通信结构:
https://github.com/matyhtf/php-webim
Demo: http://webim.swoole.com/
1.服务器端由Nginx/PHP-FPM提供HTTP服务,比如监听80端口:
浏览器访问 http://webim.swoole.com/main.html 获取Nginx/Apache+PHP服务产生的数据.
2.PHP Swoole实现的WebSocket服务(CLI程序)单独监听一个端口,比如9503:
main.html页面里用JavaScript访问 ws://webim.swoole.com:9503 获取WebSocket服务产生的数据.

这简直就是swoole需要发挥极致的需求啊,这种玩意,使用libevent和纯C实现swoole相对来说要比基于pcntl的workerman会更合适。

之前有过类似研究,不过没有深入,http://xmpp.org/xmpp-software/servers/ 仅供参考

感谢吴隐隐同学帮我的提问,也谢谢大家提供的思路,我决定用workerman试试?

如果并发不是特别高还可以

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn