soketi/echo-server-core

此包已被弃用且不再维护。未建议替代包。

Echo Server Core 是一个 Laravel 工具包,用于基于 Socket.IO 的 Echo Server 应用程序。

3.0.0 2021-06-02 19:25 UTC

This package is auto-updated.

Last update: 2021-07-28 19:06:06 UTC


README

该应用程序现已弃用(仅限安全问题)

它将不会收到任何新功能更新。请考虑使用 soketi/pws,这是一个由 C 语言编写并移植到 Node.js 的 Echo Server 集成推送服务器,由 uNetworking/uWebSockets.js 的出色团队开发。

该应用程序同时使用 Pusher 和 Socket.IO 进行实现存在缺陷,这是一个非常糟糕的主意。弃用公告之前版本的版本仍然可用。

Echo Server Core

CI codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License

Echo Server Core 是一个 Laravel 工具包,用于基于 Socket.IO 的 Echo Server 应用程序。

此包旨在与 soketi/echo-server 一起使用,它是对 Laravel Echo Server 的分支,以提高应用程序管理员的健壮性。

🤝 支持

Renoki Co. 在 GitHub 上的目标是向世界带来许多开源项目和有帮助的项目。每天开发和维护项目是一项艰巨的工作,尽管如此,我们仍然热爱它。

如果您在日常工作中使用您的应用程序,在演示中,爱好项目或甚至学校项目中,请分享一些关于我们工作的好评或赞助我们的工作。好评会触动我们的心弦和感觉,而赞助将使开源项目保持活力。

ko-fi

🚀 安装

您可以通过 composer 安装此包

composer require soketi/echo-server-core

发布配置

$ php artisan vendor:publish --provider="Soketi\EchoServer\EchoServerServiceProvider" --tag="config"

发布迁移

$ php artisan vendor:publish --provider="Soketi\EchoServer\EchoServerServiceProvider" --tag="migrations"

🙌 使用

默认情况下,您将受益于一小部分功能,例如,使用 Node.js 中的 api 应用程序管理器注册路由来检索应用程序。

如果您在单独的环境或位置中使用 Node.js 应用程序,通过文档获取的 .env 配置不会反映在 Node.js 应用程序上,因此您还应配置 Node.js 应用程序。

应用程序管理器

检查配置文件,您可能希望使用 Echo Server Core 的 database 驱动程序以及 Echo Server 的 api 应用程序管理器。为此,所有 .env 变量都设置为与 Echo Server 的变量兼容,因此您可以轻松地将变量实现到 .env 中,并使 Core 和 Node.js 应用程序使用相同的配置。

# Set the database driver on Core
ECHO_SERVER_APPS_MANAGER_DRIVER=database

# Set the API driver on Node.js app
ECHO_SERVER_APPS_MANAGER_DRIVER=api

默认情况下设置为 array,这意味着默认驱动程序与 Node.js 应用程序相同,但这次使用的是配置文件中的数组

ECHO_SERVER_APPS_MANAGER_DRIVER=array

ECHO_SERVER_APP_DEFAULT_ID=echo-app
ECHO_SERVER_APP_DEFAULT_KEY=echo-app-key
ECHO_SERVER_APP_DEFAULT_SECRET=echo-app-secret
ECHO_SERVER_APP_DEFAULT_MAX_CONNS=100

API 管理器安全

由于检索应用的调用会暴露密钥,因此需要在Core与Echo服务器应用之间建立令牌,以确保只有Echo服务器可以访问它们。

出于安全考虑,您应该更改默认令牌。它与Node.js应用向后兼容,这意味着这将让Node.js应用也了解到令牌。

ECHO_SERVER_APPS_MANAGER_TOKEN=my-super-secret-token

回声广播器

这个包包含一个自定义的广播器,它解决了Pusher广播器通常存在的问题。它原生支持与broadcasting.php相同的Pusher配置,但唯一的问题是驱动程序被称为socketio,您需要传递额外的参数。

'socketio' => [
    'driver' => 'socketio',
    'key' => env('ECHO_SERVER_APP_DEFAULT_KEY'),
    'secret' => env('ECHO_SERVER_APP_DEFAULT_SECRET'),
    'app_id' => env('ECHO_SERVER_APP_DEFAULT_ID'),
    'options' => [
        'cluster' => 'mt1',
        'encrypted' => true,
        'host' => env('ECHO_SERVER_HOST', '127.0.0.1'),
        'port' => 6001,
        'scheme' => env('ECHO_SERVER_SOCKET_PROTOCOL', 'http'),
        'curl_options' => [
            CURLOPT_SSL_VERIFYHOST => 0,
            CURLOPT_SSL_VERIFYPEER => 0,
        ],
    ],
],

🐛 测试

vendor/bin/phpunit

🤝 贡献

有关详细信息,请参阅CONTRIBUTING

🔒 安全性

如果您发现任何与安全相关的问题,请通过电子邮件alex@renoki.org联系,而不是使用问题跟踪器。

🎉 致谢