我在Windows 10机器上安装了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'上没有收到任何消息
有什么想法吗?
答案 0 :(得分:0)
尝试更改:
redis = new Redis();
为:
redis = new Redis('6379', 'Redis');
答案 1 :(得分:0)
Laravel在频道名称之前添加前缀。您可以在 config / database.php 中检查前缀,然后找到datetime.date
。默认情况下,前缀为redis => options => prefix
,因此您需要订阅laravel_database_
而不是laravel_database_test-channel
。