【问题标题】:Not getting message from Redis publish function in Laravel未从 Laravel 中的 Redis 发布功能获取消息
【发布时间】:2020-01-03 03:08:49
【问题描述】:

我从 Laravel 发布消息,但没有进入节点 js 端。我正在使用 Laravel 5.8。

Laravel 代码:

namespace App\Http\Controllers;

use Redis;

class HomeController extends Controller {
    public function test(){
        $redis = Redis::connection();
        $test = $redis->publish('message', json_encode(['foo' => 'bar']));

        echo $test; // returned 0
        exit;
    }
}

NodeJs 代码:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');

server.listen(3000);
io.on('connection',function(socket){
    console.log('Starting...');
    var redisClient = redis.createClient();
    redisClient.subscribe('message');

    redisClient.on('message', function(channel, data){
        data = JSON.parse(data);
        console.log(data);        
        io.emit('message', data);
    });

    socket.on('disconnect',function(){
        redisClient.quit();
    });
});

请帮助我。提前致谢。

【问题讨论】:

    标签: node.js sockets redis laravel-5.8


    【解决方案1】:

    谢谢! 因为我使用redis.options.prefix。 函数 subscribe() 回调 $channel 将替换前缀为 ''。

    【讨论】:

      猜你喜欢
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 2021-05-28
      • 2023-04-04
      相关资源
      最近更新 更多