trainjunkies-packages / data-feeds-queue-subscriber
订阅Network Rail & National Rail数据推送队列
v6.1
2024-01-05 16:13 UTC
Requires
- php: ^7.4.24
- ext-json: *
- stomp-php/stomp-php: ^5.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.31
- phpspec/phpspec: *
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.4
- vlucas/phpdotenv: ^5.6
README
PHP包,用于通过Active MQ STOMP从National Rail & Network Rail消费Open Rail Data推送。支持具有服务器心跳的持久连接。
安装
通过Composer
安装Composer,并使用以下命令安装此包。
composer require third-rail-packages/data-feeds-queue-subscriber
入门指南
National Rail - DARWIN PushPort
注册National Rail Open Data推送以生成您唯一的凭据。更多信息可以在Open Rail Data Wiki上找到。
./scripts/national-rail
Network Rail - NROD, TRUST, TD
注册Network Rail Open Data平台以生成用于推送的登录名和密码。务必激活您希望订阅的Active MQ主题。更多信息可以在Open Rail Data Wiki上找到。
示例代码可以在./scripts/network-rail
中找到
带有心跳的持久订阅
以下示例请求使用提供的Client ID和ActiveMQ订阅名称建立持久连接,并从服务器每20秒接收一个心跳帧,同时每5秒发送一个。
<?php // ./trust-durable-example.php use ThirdRailPackages\QueueSubscriber\NetworkRail\Topics; use ThirdRailPackages\QueueSubscriber\Stomp\DurableSubscription; use ThirdRailPackages\QueueSubscriber\Stomp\Message; use ThirdRailPackages\QueueSubscriber\Stomp\StompClientFactory; include __DIR__ . '/vendor/autoload.php'; try { // Additional arguments can be useed to configure Stomp connection $client = StompClientFactory::make( 'publicdatafeeds.networkrail.co.uk', 61618, 'mynrod-email@example.com', 'S3eC7et' ); // Consult Open Rail Data wiki on Best practice for durable subscriptions return new DurableSubscription( $client, 'my-nrod-production' ); $subscription->consume(Topics\Trust::MOVEMENT_ALL, function(Message $message) { echo PHP_EOL; var_dump(json_decode($message->getBody(), true)); echo PHP_EOL; }); } catch (\Exception $e) { echo $e->getMessage() . PHP_EOL; // Place sleep(X) here or implement exponential backoff exit(1); }
开发
复制并完善.env.dist
到.env
,使用所需的推送凭据。
使用Docker管理开发环境和依赖项。在已检出克隆的仓库目录中,运行以下命令以启动Docker Compose环境。
docker-compose up -d --build
登录到app
容器以开始开发。
docker-compose run --rm app sh
示例脚本可以在内部执行。
php scripts/network-rail/trust.php
Xdebug也已被安装以调试PHP。
还提供了一个ActiveMQ容器,以帮助开发/调试。可以通过浏览器在https://:8181/admin
上通过凭据admin
& admin
访问管理界面。
作者
- Ben McManus - bennoislost
还可以查看参与此项目的贡献者列表
许可证
本项目受MIT许可证许可 - 有关详细信息,请参阅LICENSE.md文件