Pra*_*lik 9 push-notification redis laravel laravel-5.6
我想使用Web套接字在Laravel中实现Web通知.我试过推.这很容易,但它是付费套餐.我也尝试过redis和socket.io,我必须安装地平线.我正在运行Windows,根据我所读到的有关地平线的内容,我无法在Windows上安装它.
所以我对推送通知非常困惑.我正在尝试至少一周但尚未找到任何解决方案.我的前端是Angluar 5/android,后端是Laravel 5.6.
你能否建议我实施推送通知的任何好主意?
你一直在使用推杆,所以我假设你知道如何使用事件.
我推荐你laravel-echo-server.它很容易使用,内置api.
这是一个从头开始的laravel-echo项目的新例子.设置项目后.
如果你尚未安装它,你将需要predis
composer require predis/predis
redis-server /usr/local/etc/redis.conf
Run Code Online (Sandbox Code Playgroud)
npm install -g laravel-echo-server laravel-echo-server initApp\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中添加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>
Run Code Online (Sandbox Code Playgroud)最后运行laravel-echo-server启动并打开你的项目,你会看到
[20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private-
App.User.1
[20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
Run Code Online (Sandbox Code Playgroud)你可以听任何你想要的事件或其他通知
这是我的github项目echo-example
添加一些代码,以便您可以使用postman发送消息给specfic用户.您可以从chrome console中看到消息.您可以从github项目截图中获取更多详细信息
看看这篇文章。它涵盖了使用 redis 驱动程序、Laravel echo 和 socket.io 客户端在 Laravel 中实现 websocket。
\n\n根据上面的文章:
\n\n\xe2\x80\x9c为什么不\xe2\x80\x99你只使用Pusher?\xe2\x80\x9d
\n\n事情是这样的。
\n\nLaravel 附带了 Pusher 功能。尽管 Pusher 看起来像是一个快速的 \xe2\x80\x9c 即插即用\xe2\x80\x9d 解决方案(事实确实如此),但它也有局限性。检查https://pusher.com/pricing
\n\n大多数教程都以实现 Websockets 为标题来欺骗您,而实际上他们只是想为您提供 Pusher。(我最喜欢的部分是他们说你可以轻松切换到 socket.io)
\n| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |