renoki-co / echo-server-core
Echo Server Core是一个用于基于Socket.IO的Echo服务器应用程序的Laravel实用包。
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: ^4.0
- renoki-co/laravel-useful-casts: ^1.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
Echo Server Core是一个用于基于Socket.IO的Echo服务器应用程序的Laravel实用包。
该驱动程序旨在与renoki-co/echo-server一起使用,它是Laravel Echo Server的分支。
🤝 支持
Renoki Co.在GitHub上致力于将许多开源项目和有用的项目带给世界。每天开发和维护项目是一项艰苦的工作,尽管如此,我们热爱它。
如果您在日常工作中使用您的应用程序,在演示演示中,爱好项目,甚至学校项目中,请分享一些关于我们工作的好评或赞助我们的工作。好评会触动我们的脉轮和氛围,而赞助将使开源项目保持活力。
🚀 安装
您可以通过composer安装此包
composer require renoki-co/echo-server-core
发布配置
$ php artisan vendor:publish --provider="RenokiCo\EchoServer\EchoServerServiceProvider" --tag="config"
发布迁移
$ php artisan vendor:publish --provider="RenokiCo\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 Server应用程序之间建立令牌,以确保只有Echo Server可以访问它们。
出于安全原因,您应该更改默认令牌。它与Node.js应用程序向后兼容,这意味着这将让Node.js应用程序知道令牌。
ECHO_SERVER_APPS_MANAGER_TOKEN=my-super-secret-token
Echo广播器
此包附带一个自定义广播器,它解决了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,而不是使用问题跟踪器。