我目前在我的Symfony2应用中使用ClankBundle,需要实现Ratchet文档中提到的Push to an Existing Site功能。但是,我没有找到关于如何使用ClankBundle完成此功能的线索!
我已成功实施了ClankBundle文档中的Topic Handler Setup,但需要一种方法来添加对ZeroMQ的支持。
请您演示(最好是带代码)如何将ZeroMQ与Clankbundle一起使用?
答案 0 :(得分: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');
}
}