renoki-co/echo-server-core

此包已被废弃,不再维护。作者建议使用soketi/echo-server-core包代替。

Echo Server Core是一个用于基于Socket.IO的Echo服务器应用程序的Laravel实用包。

2.1.0 2021-02-23 10:46 UTC

This package is auto-updated.

Last update: 2021-02-27 11:12:17 UTC


README

CI codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License

Echo Server Core是一个用于基于Socket.IO的Echo服务器应用程序的Laravel实用包。

该驱动程序旨在与renoki-co/echo-server一起使用,它是Laravel Echo Server的分支。

🤝 支持

Renoki Co.在GitHub上致力于将许多开源项目和有用的项目带给世界。每天开发和维护项目是一项艰苦的工作,尽管如此,我们热爱它。

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

ko-fi

🚀 安装

您可以通过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,而不是使用问题跟踪器。

🎉 致谢