npm 包 laravel-echo 使用教程

阅读时长 5 分钟读完

介绍

laravel-echo是一个非常强大的工具,它是 Laravel 的 Echo 包在 JavaScript 环境中的实现。它可以帮助我们轻松地在前端实时推送数据。laravel-echo通过类似 socket.io 的机制来监听某些频道(channel),从而让我们在前端能够方便地接收实时数据。

安装

你可以通过 npm 来安装 laravel-echo 包。在你的项目目录下,执行以下命令:

然后你需要在你的应用程序中集成 laravel-echo。如果你的应用程序是基于 Vue.js,可以使用 Vue 插件集成 laravel-echo。在 app.js 中添加以下代码即可:

这里它是基于 socket.io 的,你也可以选择其他的作为 broadcaster,如 pusher 等。其中 hostlaravel-echo-server 推送服务的地址,默认为 http://localhost:6001。如果你使用的是其他的推送服务,可以根据实际情况进行配置。

使用

laravel-echo 的使用分为两个部分:订阅频道和监听频道。首先,你需要在你的 Vue 组件中订阅频道:

上面的代码中,我们订阅了 orders 频道,并监听 OrderCreated 事件。其中 echo.channel('orders') 表示订阅了 orders 频道。

接下来需要看一下后台推送的 event 数据。在 Laravel 中,我们可以使用 broadcast 进行事件的推送:

通过 broadcast 能够把数据以指定的 event 类名的形式推送到绑定的频道中。下面是一个简单的 OrderCreated 事件类的编写示例代码:

-- -------------------- ---- -------
--- --------------------------------------------------

----- ------------ ---------- ---------------
-
    ------ -------

    ---
     - ------ - --- ----- ---------
     -
     - ------- ----
     --
    ------ -------- -------------------
    -
        ------------ - -------
    -

    ---
     - --- --- -------- --- ----- ------ -- --------- ---
     -
     - ------- --------------------------------------
     --
    ------ -------- -------------
    -
        ------ --- ------------------
    -

    ------ -------- -------------
    -
        ------ ---------------
    -
-

broadcastAs 方法中我们设置了推送的事件名为 OrderCreated。通过这个名称,我们前端就能收到推送的数据。

订阅频道之后,我们需要监听这个频道上的事件:

在监听时,我们需要根据推送数据的 event 类名来设置监听的事件名。在这里,我们监听的是 OrderCreated 事件。

集成到非 Vue.js 项目

在非 Vue.js 项目中,我们需要手动初始化 laravel-echo。在页面中添加以下脚本代码:

在具体页面中使用 window.LaravelEchoInstance 即可。例如:

总结

laravel-echo 的使用非常简单,它使得我们能够轻松地在前端实现实时数据的推送和监听。在实际开发项目时,它能够为我们提供很大的帮助。本文介绍了 laravel-echo 的集成和使用,并提供了相应的示例代码,希望能够对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/laravel-echo