当前位置:  开发笔记 > 编程语言 > 正文

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

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

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

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有