Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法订阅Redis Channel Laravel 5.2

无法订阅Redis Channel Laravel 5.2
EN

Stack Overflow用户
提问于 2016-11-10 14:02:28
回答 1查看 1.4K关注 0票数 0

我正在遵循Laravel office Redis指南,但我遇到了一些问题https://laravel.com/docs/5.2/redis#pubsub

创建命令后,当我在控制台中运行“-> php artisan redis:subscribe”时,我得到以下错误

代码语言:javascript
运行
AI代码解释
复制
  [Symfony\Component\Console\Exception\CommandNotFoundException]  
  There are no commands defined in the "redis" namespace. 

我不能听Redis Chanel的歌。

Redis发布通道方法工作正常。来检查这个。在控制台中,我输入"-> redis-cli“,然后在刷新浏览器中输入"subscribe mychannel”,我在控制台中获取发布数据。

我无法通过Laravel订阅。

我也试过使用通配符

代码语言:javascript
运行
AI代码解释
复制
Route::get('/subscribe', function()
{
  Redis::psubscribe(['*'], function($message, $channel) {
      echo $message;
  });
});

但是浏览器一直在加载,我没有得到任何数据。我还尝试在控制器中创建一个方法。

代码语言:javascript
运行
AI代码解释
复制
public function subscribeChannel()
{
    $redis = Redis::Connection();
    $redis->subscribe(['channel'], function($message) {
        echo $message;
    });
}

这个subscribeChannel方法给出了以下错误

代码语言:javascript
运行
AI代码解释
复制
ErrorException in StreamConnection.php line 390:
strlen() expects parameter 1 to be string, array given

我在config/database.php中的配置如下

代码语言:javascript
运行
AI代码解释
复制
'redis' => [

        'cluster' => false,

        'default' => [
            'host' => env('REDIS_HOST', 'localhost'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
            'read_write_timeout' => 0
        ],
    ],

寻求帮助谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-11-08 09:09:29

Redis::connection & then subscribe不适用于Laravel 5.2。

您可以使用以下命令来执行相同的操作:

代码语言:javascript
运行
AI代码解释
复制
Redis::subscribe(['user_online_offline'], function ($message) {
      echo $message;
});

如果你想使用另一个相同的连接,你可以使用下面的命令:

代码语言:javascript
运行
AI代码解释
复制
Redis::subscribe(['user_online_offline'], function ($message) {
     echo $message;
}, $connection = 'socket');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40529492

复制
相关文章
Laravel实现redis发布-订阅
如果说我们需要一个比较简单的这种机制,我们可以采用redis这个轻量级的订阅机制,我们可以参考redis的 Publish/Subscribe 机制,得到比较好的问题解决方案 当然,如果是项目比较复杂,可以考虑使用Kafka, RabbitMQ之类的消息队列组件
憧憬博客
2020/07/20
1.3K0
Laravel5.2之Redis保存页面浏览量
说明:本文主要讲述使用Redis作为缓存加快页面访问速度。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。
botkenni
2022/01/10
8.9K0
Laravel5.2之Redis保存页面浏览量
laravel5.2 多表验证
然后我们在views目录下建一个admin文件夹,将layouts文件夹包括里边的内容都复制过来,再将home.blade.php文件复制过来,重命名一下dashboard,再建一个auth文件夹,将login和register文件放进去,如下图
horan1
2023/07/25
2540
laravel5.2 多表验证
Laravel5.2之Validator
Laravel提供了Validator模块,可解决表单提交验证等一些需求,并且可以在视图View中显示错误验证信息,交互还是很友好的。注明:作者水平有限,有错误或建议请指正,轻拍。
botkenni
2022/01/10
13.4K0
Laravel5.2之Validator
laravel 5.2使用的那些坑
下载 illuminate/html后
lilugirl
2019/05/26
9040
laravel5.2的新功能
上一节课我们学了laravel5.3的新特性 https://my.oschina.net/lilugirl2005/blog/787478
lilugirl
2019/05/28
1.6K0
laravel5.2的新功能
Redis 发布订阅
Redis的发布订阅(Pub/Sub)功能允许客户端订阅一个或多个频道,当某个频道有消息发布时,订阅该频道的客户端会收到相应的消息。发布订阅模式在实际应用中被广泛应用,比如在聊天室、实时数据推送、通知等场景下都可以使用发布订阅模式实现。
玖叁叁
2023/04/15
8740
Laravel5.2之Composer自动加载
说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制。
botkenni
2022/03/24
3.7K0
Laravel5.2之Composer自动加载
Laravel5.2之PHP重载(overloading)
说明:本文主要讲述PHP中重载概念,由于Laravel框架中经常使用这块知识点,并且PHP的重载概念又与其他OOP语言如JAVA中重载概念不一样,故复习并记录相关知识点。同时,作者会将开发过程中的一些截图和代码黏上去,提高阅读效率。
botkenni
2022/01/10
3.2K0
redis发布订阅
都放到数据库>数据能保证,但是多人查询以及翻页的成本就非常高,这个时候就要区分了,老数据用数据库,比如近3天用sorted_set来存储(rank 可以按时间点进行排序)
灬沙师弟
2022/09/02
7940
订阅消息失败_无法进入苹果订阅页面
如果您接收的订阅出现此错误消息,可能是由以下几种原因导致的:缺失凭据:某些视图在发布时具有嵌入的凭据。如果嵌入式凭据现已过时或视图在重新发布时未包含嵌入式凭据,则您可能会收到以上错误消息。
全栈程序员站长
2022/09/22
3.4K0
订阅消息失败_无法进入苹果订阅页面
Redis发布订阅
所谓发布订阅,就是 消息发布者发布消息 及 消息订阅者接收消息 ,二者通过某种媒介关联起来。
张小驰出没
2021/12/06
7990
Redis发布订阅
redis发布订阅
Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式。
超蛋lhy
2018/12/19
1.4K0
Redis 发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
子润先生
2021/07/02
4920
Redis发布订阅
Redis 的发布订阅(Pub/Sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。当有新消息通过 PUBLISH 命令发送给频道时,这个消息会被发送给订阅它的所有客户端
栗筝i
2023/10/16
1.6K0
Redis发布订阅
Redis 发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
只喝牛奶的杀手
2019/08/26
6350
Redis 发布订阅
基于 Redis 发布订阅 + Socket.io 实现事件消息广播功能
前面学院君给大家介绍了 Laravel 底层基于 Redis 列表驱动的消息队列实现原理,以及基于消息队列的事件监听和和处理,今天我们继续来看 Laravel 中另一个可以使用消息队列的场景 —— 事件广播,此外,我们还可以结合 Redis 发布/订阅功能完成广播系统的 Websocket 服务端实现。
学院君
2021/01/08
4.7K0
《redis in action》redis发布订阅
我们在学些rabbitmq中知道一个概念那就是发布和订阅,当然我们在解析eurak注册中心的时候也说过发布订阅。其实redis也提供了相关的功能。所以说redis还是非常强大的存在。咋今天主要就是翻译一下《redis in action》书中写的关于redis发布和订阅这块的内容。首先redis的发布订阅是基于信道的,也就是说发布和订阅其实都是基于信道,发布者将消息发送到信道,然后订阅者监听信道,获取得到消息。这块书中建议我们将发布订阅模型理解为广播站,监听一个信道的所有订阅者都可以获得消息。
写一点笔记
2022/08/11
3480
《redis in action》redis发布订阅
Laravel5.2之模型关联预加载
说明:本文主要说明Laravel Eloquent的延迟预加载(Eager Loading),使用延迟预加载来减少MySQL查询次数。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。
botkenni
2022/01/10
2.6K0
Laravel5.2之模型关联预加载
点击加载更多

相似问题

通过redis订阅动态laravel频道

15

在Braintree订阅Laravel /收银台-braintree/Laravel 5.2

11

无法加载DataTables Laravel 5.2

229

无法加载laravel 5.2图像

111

Laravel 5.2无法更新记录

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档