资讯专栏INFORMATION COLUMN

打造你的Laravel即时应用(二)-消息推送与监听

omgdog / 1558人阅读

摘要:打造你的即时应用二消息推送与监听年月日接于上篇博客打造你的即时应用一项目初始化构建在上一篇博客中介绍了项目的基本构建现在进入实战操作一消息推送创建事件类的广播推送通过来实现下面通过命令来创建一个事件类为了配合我们的广播系统使用需要实现接

打造你的Laravel即时应用(二)-消息推送与监听

2019年08月04日20:16:21 XXM

接于上篇博客: 打造你的Laravel即时应用(一)-项目初始化构建

在上一篇博客中,介绍了项目的基本构建,现在进入实战操作.

(一、消息推送) 1.创建事件类

Laravel的广播推送通过Event来实现,下面通过artisan命令来创建一个事件类

php artisan make:event TestEvent

为了配合我们的广播系统使用需要实现==IlluminateContractsBroadcastingShouldBroadcast==接口,就像这样

class TestEvent implements ShouldBroadcast
2.指定推送频道

更改==broadcastOn==返回的Channel对象

public function broadcastOn()
{
        return new Channel("notice");
}
3.监听消息

需要安装laravel-echo及 socket. io client这两个包

npm install --save socket.io-client 
npm install --save laravel-echo

安装完成后,打开==resources/assets/js/bootstrap.js==文件,添加包含基本Echo对象构建的代码

import Echo from "laravel-echo"

window.io = require("socket.io-client");
window.Echo = new Echo({
    broadcaster: "socket.io",
    host: window.location.hostname + ":6001"
}); 

构建完成后,在我们的js代码中开始监听频道事件.

PS:更改后记得运行==npm run prod || npm run dev==

window.Echo.channel("test-event")
    .listen("ExampleEvent", (e) => {
        console.log(e);
    });
4.测试应用结果

我们通过添加一条路由来测试

Route::get("/notice",function(){
    $event = event(new AppEventsTestEvent("测试通知"));
});

页面监听效果如下:

以上就完成了基本的消息推送和监听,当然还有更多的技巧没有展示到位,有兴趣的同学可以查询文档: https://laravel.com/docs/5.6/... 来获得更多的知识和技巧.

==TestEvent.php== 完整代码如下:

message = $message;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return IlluminateBroadcastingChannel|array
     */
    public function broadcastOn()
    {
        return new Channel("notice");
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106382.html

相关文章

  • Laravel 广播系统工作原理

    摘要:今天,让我们深入研究下的广播系统。广播系统的目的是用于实现当服务端完成某种特定功能后向客户端推送消息的功能。这种使用场景可以完美诠释广播系统的工作原理。另外,本教程将使用广播系统实现这样一个即时通信应用。 这是一篇译文,译文首发于 Laravel 广播系统工作原理,转载请注明出处。 今天,让我们深入研究下 Laravel 的广播系统。广播系统的目的是用于实现当服务端完成某种特定功能后向...

    alphahans 评论0 收藏0
  • Laravel 即时应用的一种实现方式

    摘要:即时交互的应用在现代的应用中很多场景都需要运用到即时通讯,比如说最常见的支付回调,与三方登录。在生成事件时,已经自动添加了该命名空间,该契约只约束方法。会将事件中的允许公开访问的数据通过给定的频道发布出去。 即时交互的应用 在现代的 Web 应用中很多场景都需要运用到即时通讯,比如说最常见的支付回调,与三方登录。这些业务场景都基本需要遵循以下流程: 客户端触发相关业务,并产生第三方应...

    NeverSayNever 评论0 收藏0
  • Laravel 结合 GatewayWorker 推送消息

    摘要:项目中执行以下命令即可三应用在中结合消息队列可参考使用队列来完成消息推送。五配置如何创建一个服务,使得客户端可以用过协来连接通讯,比如在微信小程序中连接服务端。微信小程序要求连接时不带端口号,也就是端口只能是。 一、简述 GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居...

    617035918 评论0 收藏0

发表评论

0条评论

omgdog

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<