支持 Laravel.io 的持续开发 →

将 Soketi 部署到 Laravel Forge

6 Jan, 2022 3 min read

Soketi 是一个简单、快速且健壮的开源 WebSocket 服务器,使用 TypeScript 编写。它完全兼容 Pusher v7 协议,这使得在使用 Laravel Echo 时可以成为 Pusher 的可行替代品。

在这篇博客文章中,我们将学习如何将 Soketi 部署到由 Laravel Forge 管理的服务器。我们建议在 Forge 中创建此服务器时使用“Web 服务器”服务器类型,因为 Web 服务器包括 Node、NPM 和 Nginx。

打开端口

创建服务器后,我们需要在服务器上打开端口 6001,以便 PusherJS / Echo 客户端可以连接到我们将要安装的 Soketi 服务器。

要打开端口,请转到 Forge 中的“网络”面板,创建一个名为“Soketi 服务器”的新规则,并将端口设置为 6001。规则类型应设置为“允许”。

Opening Port 6001

安装 Soketi

在我们能够运行 Soketi 之前,我们需要在服务器上安装它。因为 Soketi 是一个 NPM 包,我们可以运行以下命令来安装它

npm install -g @soketi/soketi

或者,您也可以使用 Yarn 来安装 Soketi。

我们可以通过在终端中运行 soketi start 命令来验证 Soketi 是否已安装。如果 Soketi 未安装或其默认端口 6001 正在使用中,则在执行 start 命令时您可能会收到错误。

配置守护进程

安装 Soketi 后,我们可以在服务器上配置守护进程,使其保持服务运行并在崩溃时重新启动。

让我们转到 Forge,然后导航到服务器的 守护进程 标签页。要创建守护进程,我们需要做几件事情

  1. 将命令设置为 soketi start
  2. 将停止秒数更改为 60
  3. 将停止信号改为 SIGINT

Creating The Soketi Daemon

一旦创建,我们就可以通过点击“活动守护进程”表中的守护进程旁边的三个点,然后点击“显示守护进程日志”按钮来验证 Soketi 是否正在运行。

Checking The Soketi Service

太好了!Soketi 运行得非常好。

有关更详细的设置说明,请参阅 Soketi 文档。您可能需要修改命令以更改驱动程序、启用 SSL 支持、打开调试以及更多。

配置我们的网站

现在已安装和配置了 Soketi,我们可以更新 Laravel 应用程序以连接到我们的 Soketi 服务器。

默认情况下,config/broadcasting.php 配置文件不包含连接到 Soketi 服务器时所需的附加选项。需要更新 pusher 配置。

'connections' => [
    
    // ...

    'pusher' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_APP_KEY', 'app-key'),
        'secret' => env('PUSHER_APP_SECRET', 'app-secret'),
        'app_id' => env('PUSHER_APP_ID', 'app-id'),
        'options' => [
            'host' => env('PUSHER_HOST', '127.0.0.1'),
            'port' => env('PUSHER_PORT', 6001),
            'scheme' => env('PUSHER_SCHEME', 'http'),
            'encrypted' => true,
            'useTLS' => env('PUSHER_SCHEME') === 'https',
        ],
    ],
],

我们还需要更新 .env 文件以包含新的配置细节。

PUSHER_APP_KEY=app-key
PUSHER_APP_ID=app-id
PUSHER_APP_SECRET=app-secret
PUSHER_HOST=127.0.0.1
PUSHER_PORT=6001

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_HOST="${PUSHER_HOST}"
MIX_PUSHER_PORT="${PUSHER_PORT}"

默认情况下,Soketi 使用 app-keyapp-idapp-secret 凭据启动服务器。您可以使用 Soekti 环境变量来更改这些凭据。

最后,您应该将 PUSHER_HOST 环境变量更改为您的 Forge 服务器 IP 地址。现在,您的项目应能够连接到 Soketi 服务器。

最后更新 1 年前。

kakad3v 赞了这个文章

1
喜欢这篇文章? 让作者知道并给他们一个掌声!

你可能还喜欢以下文章

March 11th 2024

如何使用 Larastan 将您的 Laravel 应用程序从 0 到 9

在 Laravel 应用程序执行之前找到错误是可能的,得益于 Larastan...

阅读文章
July 19th 2024

在不使用特质的情况下标准化 API 响应

我注意到,大多数用于 API 响应的库都是使用特质实现的...

阅读文章
July 17th 2024

通过 Discord 通知收集 Laravel 项目的反馈

如何在 Laravel 项目中创建反馈模块,并在接收到消息时获得 Discord 通知...

阅读文章

我们要感谢这些令人惊叹的公司 对我们的支持

您的标志在这里吗?

Laravel.io

Laravel问题解决、知识共享和社区建设的门户。

© 2024 Laravel.io - 版权所有。