首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5.2 - Redis - Socket.io发布不起作用

Laravel 5.2 - Redis - Socket.io发布不起作用
EN

Stack Overflow用户
提问于 2016-04-20 22:13:48
回答 2查看 385关注 0票数 0

我在windows10机器上安装了laravel。我写了这条简单的路线

代码语言:javascript
复制
Route::get('/event', function(){
    $data = array("key"=>"val");
    Redis::publish('test-channel', json_encode($data));
});

然后我有这个节点server.js

代码语言:javascript
复制
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文件是

代码语言:javascript
复制
BROADCAST_DRIVER=redis
REDIS_HOST=192.168.1.14 #ubuntu ip
REDIS_PASSWORD=null
REDIS_PORT=6379

问题是当执行路由'/event‘时(并且节点服务器正在监听) ..我在'test-channel‘上没有收到任何消息

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-04-10 16:53:49

Laravel在频道名称前添加前缀。您可以在config/database.php中检查前缀,然后找到redis => options => prefix。默认情况下,前缀为laravel_database_,因此您需要订阅laravel_database_test-channel而不是test-channel

票数 1
EN

Stack Overflow用户

发布于 2016-06-21 02:47:01

尝试更改:

代码语言:javascript
复制
redis = new Redis(); 

至:

代码语言:javascript
复制
redis = new Redis('6379', 'Redis');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36746572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档