2

現在、Symfony2 アプリでClankBundleを使用しており、Ratchet のドキュメントに記載されている既存のサイトへのプッシュ機能を実装する必要があります。ただし、 ClankBundle を使用してこの機能を実現する方法についての手がかりは見つかりませんでした!

ClankBundle ドキュメントからTopic Handler Setupを正常に実装しましたが、 ZeroMQのサポートを追加する方法が必要です。

クランクバンドルでZeroMQを使用する方法を(できればコードで)実演していただけますか?

4

1 に答える 1

1

あなたにも役立つかもしれない回避策を見つけました。

私のセットアップでは、トピックに新しい情報をブロードキャストする必要がある定期的なサービスがあり、カスタム トピック ハンドラーがあります。

まず、定期サービスにカスタム トピック ハンドラーを挿入し、サブスクライブされたすべてのトピックをトピック ハンドラーに保存します。次のようになります。

public function onSubscribe(Conn $conn, $topic)
{
    if (!array_key_exists($topic->getId(), self::$subscribedTopics)) {
        self::$subscribedTopics[$topic->getId()] = $topic;
    }

    $topic->broadcast('connected');
}

public function getSubscribedTopics() {
    return self::$subscribedTopics;
}

定期的にこれらのトピックを取得してブロードキャストします。

public function tick()
{
    $subscribedTopics = $this->topic->getSubscribedTopics();

    foreach($subscribedTopics as $subscribedTopic) {
        $subscribedTopic->broadcast('yey');
    }
}
于 2013-12-20T12:57:54.850 に答える