代码使用的是官方package中的测试代码
composer.json文件
{
"require": {
"workerman/workerman": "^4.0",
"workerman/channel": "^1.1",
"predis/predis": "^1.1"
}
}
测试文件名 test3.php
require_once __DIR__ . '/vendor/autoload.php';
use Channel\Client;
use Channel\Server;
use Workerman\Worker;
use Workerman\Lib\Timer;
$channel_server = new Server();
$worker = new Worker();
$worker->onWorkerStart = function () {
Client::connect();
Client::on('test event', function ($event_data) {
echo 'test event triggered event_data :';
var_dump($event_data);
});
Timer::add(2, function () {
Client::publish('test event', 'some data');
});
};
Worker::runAll();
结果只有发送消息,没有订阅消息输出
服务器环境
阿里云ECS centos
php 5.6.33
workerman 4.0.26
阿里云安全组里面已经添加了允许2206端口访问
重新安装composer package,还是卡在启动画面不动。一直没有订阅消息的echo输出。
刚测试没有问题,看下是不是哪里改了源码导致异常了。
这个项目很久没动过了,应该没有什么问题,重新composer安装试下吧。
重新安装了composer包,还是有问题
重新安装composer package,源码都是最新的。还是卡在启动画面不动,一直没有订阅消息的echo输出。
你的第二个截图里少一个进程啊,只启动了channelServer,测试用的进程没启动
重新启动,重新截图了,有两个进程。还是一样的情况,没有订阅消息输出。
curl -Ss https://www.workerman.net/check | /usr/local/php_all/bin/php 环境检测都ok
pcntl、posix、sockets、event扩展都安装上了,stream、pcntl、posix相关函数都启用了。
php错误日志也没有错误提醒
这个不清楚了,我这没有环境,没办法定位
找到问题了,我去掉了php.ini中这两个禁用函数就ok了 stream_socket_accept,stream_socket_pair
这个文档https://www.workerman.net/doc/workerman/faq/disable-function-check.html中没有提到stream_socket_accept这个函数
好的,感谢反馈。