在不使用定价服务作为推送器的情况下创建 Laravel 广播的最简单方法是啥?

Posted

技术标签:

【中文标题】在不使用定价服务作为推送器的情况下创建 Laravel 广播的最简单方法是啥?【英文标题】:What is the easiest way of creating Laravel broadcasting without using priced services as Pusher?在不使用定价服务作为推送器的情况下创建 Laravel 广播的最简单方法是什么? 【发布时间】:2018-08-05 18:03:48 【问题描述】:

我花了一周的时间来教 Websockets 是什么以及如何使用它们。这一切的逻辑和架构是什么。我想创建一个带有实时聊天或实时通知的简单 Laravel 应用程序。

所以,目前我找到了几十种方法,但没有从 A 到 Z 的具体方法。使用 RedisNodeJSsocket.ioLaravel。使用 Ratchet 库,使用 3-rd 方服务,如 Pusher.com

有人建议我 LaravelLaravel echosocket.io ,仅此而已。

我真的陷入了困境。据我了解,无论如何,要实现这一切,我们需要 2 台服务器,1 台后端 (Laravel),1 台用于 WebSockets,客户端用于 emitlisten 用于事件。

在不使用第三方定价服务的情况下,最简单的技术是什么?为什么?

从一个教程中,我发现了在NodeJSsocket.io 为服务器和客户端创建服务器的想法。并创建一个简单的实时聊天。但是现在不知道如何将它与 Laravel 连接起来,以及它是否是正确的方式。

能否请人解释所有这些逻辑,并就所有这些过程给出一个好的建议和解释?

附:我阅读了广播 Laravel 文档以及大量教程和 youtube 课程。我找不到将所有架构绑定在一起的方法。谢谢。

【问题讨论】:

【参考方案1】:

首先我想告诉你,如果你想使用 laravel Echo,那么目前它只提供一种通过套接字从服务器到客户端的通信方式。而将数据从客户端发送到服务器,这些都是使用 API 调用。

现在如果你想使用简单的套接字那么我会推荐使用棘轮包来使用棘轮库进行双向通信,这里是参考链接:https://medium.com/@errohitdhiman/real-time-one-to-one-and-group-chat-with-php-laravel-ratchet-websocket-library-javascript-and-c64ba20621ed

【讨论】:

我建议将此答案缩短为两行:【参考方案2】:

有很多教程。

首先了解 why do you need to use a third party server 用于 websockets(你不必但你想)。

然后:

A step by step guide to socket.io and Laravel

Using Pusher and Laravel

【讨论】:

我已经阅读了所有这些内容并且知道如何使用 Pusher。但是step-by-step 教程很烂,因为它只是几行代码,没有解释。并且还使用了nginx 并针对未知条件进行了配置。而且它很老了(Laravel 5.1)。 请将所有相关信息添加到您的答案中,而不是链接到外部资源

以上是关于在不使用定价服务作为推送器的情况下创建 Laravel 广播的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 Terraform 文件配置器的情况下将本地文件部署到实例

有没有办法在不使用通知服务扩展的情况下将图像附加到推送通知?

在不使用 GCM 的情况下在 android 中推送通知

可以使用推送通知在不通知用户的情况下运行代码吗?

在不淹没客户端的情况下推送更新事件。干净的方式来做到这一点?

如何在不使用 3rd 方服务的情况下使用 WCF 将推送通知发送到单独的 Android 设备?