gpt4 book ai didi

laravel - 想在 Laravel 中实现 web sockets

转载 作者:IT王子 更新时间:2023-10-29 05:55:46 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com