WarriorMan是一款php的协程高性能socket扩展,适合对 Workerman 有一定的了解的同学使用。
WarriorMan是一个完全用c语言编写的php扩展,按照 Workerman 的 手册 制作,解决Workerman的一些短板,为Workerman插上协程的翅膀。
作者在这里希望大家可以尝试使用WarriorMan,尝试学习WarriorMan源码,源码中有大量中文注释,这对提升自己编程水平以及更好的理解Workerman和Swoole很有帮助。
如果在使用/学习中遇到任何问题,可以提issues或者在QQ群: 1098698769 中直接联系作者
1 WarriorMan没有WorkerMan稳定,目前适合学习与尝试。
2 WarriorMan如果框架本身出现BUG,对于不懂PHP扩展调试的开发者,那么只能等待WarriorMan开发者们修复。
1 Workerman是纯php实现的网络框架,WarriorMan是纯c实现的php扩展
2 Workerman的事件是基于异步回调的编码方式实现的,WarriorMan是协程同步的编码方式实现
3 Workerman的mysql客户端,redis客户端如果要实现非阻塞,依赖于基于异步回调的第三方库。而WarriorMan因为HOOK了PHP TCP Socket 类型的 stream,所以常见的Redis
、PDO
、Mysqli
以及用 PHP 的streams系列函数操作 TCP 连接的操作,都默认支持协程调度,减少了编程复杂度。
PHP7 or Higher
1 首先修改make.sh,将里面路径修改为自己php的路径
2 执行./make.sh
3 最后别忘了将workerman.so添加到php.ini
use Workerman\Worker;
Warriorman\Worker::rename(); // 为了防止命名空间冲突
Warriorman\Runtime::enableCoroutine(); // hook相关函数
$worker = new Worker("tcp://0.0.0.0:8080");
$worker->onMessage = function ($connection, $data) {
$responseStr = "hello world";
$connection->send($responseStr);
};
Worker::runAll();
WarriorMan:https://www.kancloud.cn/wwwoooshizha/warriorman/content
WorkerMan:http://doc.workerman.net
WarriorMan 交流QQ群: 1098698769
支持平滑重启
效率怎么样,有没有实际项目运行过?不然没人敢随便拿去真实项目用的呀,万一踩坑都不知道怎么办......
还没开发完~ 没办法商用
已支持php start.php status命令
你要拿出测试结果,这玩意优点在哪才行,不然迷迷糊糊的。
比如,你可以在同配置机器上测试 QPS,数据库等。。。
谢谢,不过我还没开发完,这就是个记录贴。希望有兴趣的同学一起参与~
携程利用不了 多核,解决一下。希望来个多线程版本的,不同线程可以共用内存读写变量
这也不用我解决啊,你开多进程不就可以了么
Worker类相关方法已完善,文档已制作
这个和c写的swoole扩展有什么区别
牛逼,能出一个多线程吗