我在windows10机器上安装了laravel。我写了这条简单的路线
Route::get('/event', function(){
$data = array("key"=>"val");
Redis::publish('test-channel', json_encode($data));
});然后我有这个节点server.js
var server = require('http').Server();
var io = require('socket.io')(server);
var Redis = require('ioredis');
redis = new Redis();
redis.subscribe('test-channel');
redis.on('message', function(channel, message){
console.log("message retriving..");
});
server.listen(6001, function(){
console.log('listening on 6001');
});我在一台安装了Redis的虚拟机上安装了Ubuntu。
我的laravel .env文件是
BROADCAST_DRIVER=redis
REDIS_HOST=192.168.1.14 #ubuntu ip
REDIS_PASSWORD=null
REDIS_PORT=6379问题是当执行路由'/event‘时(并且节点服务器正在监听) ..我在'test-channel‘上没有收到任何消息
有什么想法吗?
发布于 2020-04-10 16:53:49
Laravel在频道名称前添加前缀。您可以在config/database.php中检查前缀,然后找到redis => options => prefix。默认情况下,前缀为laravel_database_,因此您需要订阅laravel_database_test-channel而不是test-channel。
发布于 2016-06-21 02:47:01
尝试更改:
redis = new Redis(); 至:
redis = new Redis('6379', 'Redis');https://stackoverflow.com/questions/36746572
复制相似问题