我在Laravel 5.7中有一个名为RedisSubscribe.php的命令类。 我希望能够订阅“消息通道”,对消息进行一些处理,然后使用Redis将消息发布到“测试通道”。 一切正常,直到我必须发布到测试频道。 Redis当然只能订阅或发布,不能两者都做,因此我收到此错误消息:“在这种情况下,仅允许(P)SUBSCRIBE /(P)UNSUBSCRIBE / PING / QUIT ERR”。
所以我知道在node.js中,您可以通过使用以下代码创建两个独立的ioredis实例来轻松实现此目的
surf2Dwrite(pixel, surf, x * 16, y);
如何在PHP中做等效的事情?
我的代码当前看起来像这样
var Redis = require('ioredis');
var subscriber = new Redis();
var publisher = new Redis();
显然,我没有正确使用Redis :: connection,因为我仍然收到相同的错误消息。
数据库文件中的“我的连接”看起来像这样:
public function handle()
{
Redis::subscribe(['message-channel'], function ($message){
Redis::connection('my-connection');
Redis::publish('test-channel', $message);
});
}
}
答案 0 :(得分:0)
您可以使用此代码创建另一个redis实例并在Laravel中发布消息
$redis = Redis::connection('my-connection');
$redis->publish('example-channel', $data);