2

我目前在我的 Symfony2 应用程序中使用ClankBundle,需要实现Ratchet 文档中提到的Push to an Existing Site功能。但是,我没有发现有关如何使用 ClankBundle 完成此功能的任何线索!

我已经成功实现了ClankBundle 文档中的主题处理程序设置,但需要一种方法来添加对ZeroMQ的支持。

您能否演示一下(最好用代码)如何将 ZeroMQ 与 Clankbundle 一起使用?

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 回答