Hello,
I’m not sure if this feature is implemented in Yii2-redis extension.
I want to work with Pub/Sub using this extension, specifically receive messages of a subscribed key in Redis. Publish part is working fine.
I have tried several ways to receive the messages from other publishers:
- Passing as the latest parameter an array formed by [<instance>, <function name>] or a string with the function name. This is how native PHP redis driver works. But I get an error saying: ‘mb_strlen() expects parameter 1 to be string, object given’
$subscriptionResponse = Yii::$app->redisSubscriber->subscribe(
'sync',
[$this, '_handleSyncInMessage']
);
or
$subscriptionResponse = Yii::$app->redisSubscriber->subscribe(
'sync',
'_handleSyncInMessage'
);
- Putting the callback function inline. Doesn’t work neither. The same error: ‘mb_strlen() expects parameter 1 to be string, object given’
$subscriptionResponse = Yii::$app->redisSubscriber->subscribe(
'sync',
function($redis, $channel, $message) {
echo 'Never arrived here..."
}
);
The following code doesn’t throw any error, but I don’t know how to receive the messages when other processes publish in the key ‘sync’:
Yii::$app->redisSubscriber->subscribe('sync');
Anyone has a working example of this?
Thank you very much!