项目使用了workerman/redis-queue
在一个onWorkStart中使用
$client = new Client(''redis://:redis_h73TFz@1Panel-redis-bcOX:6379/0');
//或者如下
$client = new Client(''redis://1Panel-redis-bcOX:6379',[
'auth'=>'redis_h73TFz',
'db'=>0
]);
// 订阅
$client->subscribe('user-1', function($data){
echo "user-1\n";
var_export($data);
});
项目执行过过程中就报错了提示 NOAUTH Authentication required.
一看就是权限问题 看了点源码 却没有找到在哪里 连接的时候使用了密码 或者在发送消息的时候使用了密码
都没有找到 感觉应该不是作者忘记了 但是却没有找到输入密码的代码
还有就是第一个疑问 这么使用和 Redis::subscribe() 有什么区别吗 ?
今天专门研究了下 发现 webman 和workman 关于redis的使用 还是比较多的 每种 都有自己的功能 但是 webman 中的 Redis::subscribe 和workman中的redis-queue 是不是功能相同的呢 请作者解释下
版本太老了,workerman/redis 和 workerman/redis-queue 升级到最新版本
不会的 我的 "name": "workerman/redis-queue" "version": "v1.2.1", 但是workman/redis 我的composer包好像没有
// // 订阅
$client->subscribe('user-1', function($data){
echo "user-1\n";
var_export($data);
});
Press Ctrl+C to stop. Start success.
Worker udp started: 0
Worker started: 1
Worker started: 0
NOAUTH Authentication required.NOAUTH Authentication required.
安装了 composer require workerman/redis 版本 2.0.5 后依旧这样
找到原因了 Client 类引用错误了