我想使用网络套接字在Laravel中实现网络通知。我尝试过推杆。这很容易,但是它是付费的。我还尝试了redis和socket.io,必须为其安装Horizon。我正在运行Windows,但根据我对地平线的了解,无法在Windows上安装它。
所以我对推送通知非常困惑。我正在尝试至少一个星期,但尚未找到任何解决方案。我的前端在angluar 5 / android中,后端在Laravel
5.6中。
您能否建议我一些实施推送通知的好主意?
您一直在使用pusher,所以我假设您知道如何使用事件。
我建议您使用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中添加npm install --save laravel-echo
。如果您不熟悉npm或vue,则可以从我的github项目中简单地包含此编译文件。编译js <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>
[20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private-
App.User.1
[20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
您可以听任何您想要的事件或其他通知
这是我的github项目echo-example
添加一些代码,以便您可以使用邮递员向特定的用户发送消息。您可以从chrome控制台查看消息。您可以从github项目屏幕截图中获取更多详细信息
这是我第一次和docker合作。我有一个laravel web套接字网站(php laravel postgresql),需要放入一个容器。如果我只是执行命令(没有docker): php工匠服务 php artisan WebSocket:服务 然后它成功地工作: Websockets仪表板http://127.0.0.1:8000/laravel-WebSocket 我做了一个docker安装
CORS策略阻止从来源“http://localhost:8080/socket.io/?eio=3&transport=polling&t=mgbuvgw”访问位于“http://localhost:4200”的XMLHttpRequest:请求的资源上没有“Access-Control-Allow-Origin”标头。
我可以通过JavaScript直接将Web套接字连接到我的PHP守护进程服务器:var websocket = new WebSocket(“ws://IP:PORT”);这将正确握手,但是当我尝试nginx代理 http://IP 它无法接收Sec-WebSocket-Key的标头值并且握手失败。 -最近更新:JavaScript根本无法连接,原因是:语法错误:指定了无效或非法的字符串! 变量:
在我的应用程序中,我需要向特定用户发送实时通知。我的类如下, 大多数情况下,信息将由服务器端发送。因此,我没有设置应用程序目标。 在客户端,我订阅目标“/主题/用户”, 在我的一个RestController中,我有一个方法可以将消息广播给所有连接的客户端。 在这部分之前,一切正常。我收到消息并正在登录控制台。 现在,如果我想只向特定用户发送通知,我必须使用。但是我不明白我应该传递给参数的内容。我
问题内容: 如何使用正在侦听套接字连接端口的Servlet来实现Web应用程序? 问题答案: 我假设您不是指通过servlet容器免费获得的前门HTTP连接。但是,如果您想添加例如admin服务,则可以创建一个侦听器线程来设置某些全局状态。 servlet。请注意,这不被认为是犹太洁食的(我相信甚至可能违反servlet标准)。
我有一个Nodejs server.js代码: 我有一个带有java脚本的代码: 在中,我有: 当我在浏览器上打开时,这种方式运行良好。