Я хочу использовать метод в контроллере yii2 для подписки на канал, чтобы я мог получать обновление в реальном времени в качестве подписанного клиента. Я использую redis pub/sub.Как мне подписаться на yii2 и redis?
public function actionSubscribe(){
Yii::$app->redis->executeCommand('SUBSCRIBE',
['notification'],
function($redis, $channel, $message){
print('I just did it!!!!!!');
});
return true;
}
Я также использую nodeJs, а ниже - код моего узла на сервере nodeJs. Пожалуйста, что я делаю неправильно?
Я извлек этот раздел, который отказался от работы с кодом.
socket.on("message", function(channel, message) { console.log("New message: " + message + ". In channel: " + channel); socket.emit(channel, message); });
НИЖЕ полный код
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');
server.listen(8890);
io.on('connection', function (socket) {
console.log("new client connected");
var redisClient = redis.createClient();
//RedisClient deliberately pegged because I want Yii2 php to do the
//subscription to the notification channel; not nodeJs.
//redisClient.subscribe('notification');
socket.on("message", function(channel, message) {
console.log("New message: " + message + ". In channel: " + channel);
socket.emit(channel, message);
});
socket.on('disconnect', function() {
// redisClient.quit();
});
}) ;
Обратите внимание, что весь код работал до тех пор, пока я не попытался подписаться с yii2 путем привязки 'redisClient.subscribe ('notification')' и введения 'yii2 actionSubscribe()' –