soketi / echo-server-core
Echo Server Core 是一个 Laravel 工具包,用于基于 Socket.IO 的 Echo Server 应用程序。
Requires
- php: ^7.4|^8.0
- illuminate/broadcasting: ^7.30|^8.23
- illuminate/database: ^7.30|^8.23
- illuminate/routing: ^7.30|^8.23
- illuminate/support: ^7.30|^8.23
- pusher/pusher-php-server: ^6.1|^7.0
Requires (Dev)
- laravel/legacy-factories: ^1.1
- mockery/mockery: ^1.4
- orchestra/database: ^5.0|^6.0
- orchestra/testbench: ^5.0|^6.0
README
该应用程序现已弃用(仅限安全问题)
它将不会收到任何新功能更新。请考虑使用 soketi/pws,这是一个由 C 语言编写并移植到 Node.js 的 Echo Server 集成推送服务器,由 uNetworking/uWebSockets.js 的出色团队开发。
该应用程序同时使用 Pusher 和 Socket.IO 进行实现存在缺陷,这是一个非常糟糕的主意。弃用公告之前版本的版本仍然可用。
Echo Server Core
Echo Server Core 是一个 Laravel 工具包,用于基于 Socket.IO 的 Echo Server 应用程序。
此包旨在与 soketi/echo-server 一起使用,它是对 Laravel Echo Server 的分支,以提高应用程序管理员的健壮性。
🤝 支持
Renoki Co. 在 GitHub 上的目标是向世界带来许多开源项目和有帮助的项目。每天开发和维护项目是一项艰巨的工作,尽管如此,我们仍然热爱它。
如果您在日常工作中使用您的应用程序,在演示中,爱好项目或甚至学校项目中,请分享一些关于我们工作的好评或赞助我们的工作。好评会触动我们的心弦和感觉,而赞助将使开源项目保持活力。
🚀 安装
您可以通过 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联系,而不是使用问题跟踪器。