我想使用 Web 套接字在 Laravel 中实现 Web 通知。我有
尝试过推杆。这很简单,但它是付费套餐。我还尝试过redis和socket.io,我必须安装horizon。我正在运行 Windows,但根据我所读到的关于 Horizon 的内容,我无法在 Windows 上安装它。
所以我对推送通知很困惑。我已经尝试了至少一周,但尚未找到任何解决方案。我的前端是 Angular 5/android,后端是 Laravel 5.6。
您能给我建议一些实现推送通知的好主意吗?
您已经使用过 Pusher,所以我假设您知道如何使用事件。
我推荐你 laravel-echo-server。它非常容易使用,有内置的 api。
这是一个从头开始的 laravel-echo 项目的新示例。
设置项目后。
如果您还没有安装,您将需要 predis
composer require predis/predis
redis-server /usr/local/etc/redis.conf
- run
npm install -g laravel-echo-server
- run
laravel-echo-server init
- 取消注释
App\Providers\BroadcastServiceProvider::class
in config/app.php
- add
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script>
在你的 app.blade.php 中
- 你需要一个socketio-client,你可以运行
npm install --save laravel-echo
如果您不熟悉 npm 或 vue,您可以简单地包含我的 github 项目中的这个编译文件。编译js
-
将其添加到 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 项目回声示例
添加一些代码,以便您可以使用 postman 向特定用户发送消息。您可以从 chrome 控制台看到该消息。您可以从 github 项目屏幕截图中获取更多详细信息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)