【问题标题】:How to implement "Push to an Existing Site" using ZeroMQ and ClankBundle?如何使用 ZeroMQ 和 ClankBundle 实现“推送到现有站点”?
【发布时间】:2013-12-10 16:05:02
【问题描述】:

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

我已经成功实现了 ClankBundle 文档中的 Topic Handler Setup,但需要一种方法来添加对 ZeroMQ 的支持。

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

【问题讨论】:

    标签: php symfony websocket zeromq ratchet


    【解决方案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');
        }
    }
    

    【讨论】:

    • 你能解释一下“注入”部分吗?没看懂
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多