trainjunkies-packages/data-feeds-queue-subscriber

订阅Network Rail & National Rail数据推送队列

v6.1 2024-01-05 16:13 UTC

This package is auto-updated.

Last update: 2024-09-19 19:00:41 UTC


README

CI

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访问管理界面。

作者

还可以查看参与此项目的贡献者列表

许可证

本项目受MIT许可证许可 - 有关详细信息,请参阅LICENSE.md文件

致谢