我想在 Laravel 中使用网络套接字实现网络通知。我有 试过推杆。这很容易,但它是付费套餐。我还尝试过必须安装 horizon 的 redis 和 socket.io。我正在运行 Windows,但根据我对 horizon 的了解,我无法在 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
- 运行
npm install -g laravel-echo-server
- 运行
laravel-echo-server init
- 取消注释
App\Providers\BroadcastServiceProvider::class
在config/app.php
- 添加
<script src="https://cdn.jsdelivr.net/npm/socket.io-client@2.1.1/dist/socket.io.js"></script>
在你的 app.blade.php 中 - 你需要一个socketio客户端,你可以运行
npm install --save laravel-echo
.如果你不熟悉 npm 或 vue,你可以简单地从我的 github 项目中包含这个编译文件。 compiledjs 将其添加到 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>
最后运行 laravel-echo-server start 并打开你的项目,你会看到
[20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- App.User.1 [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
您可以收听任何您想要的事件或其他通知
这是我的 github 项目 echo-example
添加一点代码,这样你就可以使用postman向特定用户发送消息。你可以从chrome控制台看到消息。你可以从github项目截图中获得更多细节
关于laravel - 想在 Laravel 中实现 web sockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50576336/