laravel - 想在 Laravel 中实现 web sockets

标签 laravel push-notification redis laravel-5.6

我想在 Laravel 中使用网络套接字实现网络通知。我有 试过推杆。这很容易,但它是付费套餐。我还尝试过必须安装 horizo​​n 的 redis 和 socket.io。我正在运行 Windows,但根据我对 horizo​​n 的了解,我无法在 Windows 上安装它。

所以我对推送通知很困惑。我尝试了至少一个星期,但还没有找到任何解决方案。我的前端是 angluar 5/android,后端是 Laravel 5.6。

你能给我一些实现推送通知的好主意吗?

最佳答案

你一直在使用pusher,所以我假设你知道如何使用event。

我推荐你 laravel-echo-server。它非常容易使用,有内置的 api。

这是一个从零开始的 laravel-echo 项目的新例子。 设置项目后。

如果你还没有安装predis,你将需要它

composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. 运行npm install -g laravel-echo-server
  2. 运行laravel-echo-server init
  3. 取消注释 App\Providers\BroadcastServiceProvider::classconfig/app.php
  4. 添加<script src="https://cdn.jsdelivr.net/npm/socket.io-client@2.1.1/dist/socket.io.js"></script>在你的 app.blade.php 中
  5. 你需要一个socketio客户端,你可以运行npm install --save laravel-echo .如果你不熟悉 npm 或 vue,你可以简单地从我的 github 项目中包含这个编译文件。 compiledjs
  6. 将其添加到 app.blade.php

    <script>
    window.Echo = new Echo({
    broadcaster: 'socket.io',
    
    host: '{{url('/').':6001'}}',
    });
    Echo.private(`App.User.{{Auth::id()}}`) // private channel
    .listen('NewMessage', (e) => {
        console.log(e)
    
    });
    
    
    </script>
    
  7. 最后运行 laravel-echo-server start 并打开你的项目,你会看到

    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    
  8. 您可以收听任何您想要的事件或其他通知

  9. 这是我的 github 项目 echo-example

添加一点代码,这样你就可以使用postman向特定用户发送消息。你可以从chrome控制台看到消息。你可以从github项目截图中获得更多细节

关于laravel - 想在 Laravel 中实现 web sockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50576336/

相关文章:

android - 无法在 Trigger.io Android 应用程序上启动接收器 com.parse.ParseBroadcastReceiver

deployment - 为什么通过redis-ha在k8s上集群不起作用?

node.js - 如何在此 Kubernetes 示例中选择主 Redis pod?

javascript - 在 vuejs 和 laravel 中循环显示特定的 div `@click`

php - Laravel - 自动执行排队作业

javascript - 使用 ajax/setInterval 伪造推送通知?

kotlin - Android 13如何处理不允许通知?如何解释允许的理由?

redis - 为什么我在 REDIS 控制台中得到 "(error) ERR unknown command: redis-cli"?

laravel - Request 类中的授权方法可以返回 HandlesAuthorization 特征的自定义消息吗?

laravel - 不递送到之前退回的地址 - Mailgun