我目前在我的 Symfony2 应用程序中使用ClankBundle,需要实现Ratchet 文档中提到的Push to an Existing Site功能。但是,我没有发现有关如何使用 ClankBundle 完成此功能的任何线索!
我已经成功实现了ClankBundle 文档中的主题处理程序设置,但需要一种方法来添加对ZeroMQ的支持。
您能否演示一下(最好用代码)如何将 ZeroMQ 与 Clankbundle 一起使用?
我目前在我的 Symfony2 应用程序中使用ClankBundle,需要实现Ratchet 文档中提到的Push to an Existing Site功能。但是,我没有发现有关如何使用 ClankBundle 完成此功能的任何线索!
我已经成功实现了ClankBundle 文档中的主题处理程序设置,但需要一种方法来添加对ZeroMQ的支持。
您能否演示一下(最好用代码)如何将 ZeroMQ 与 Clankbundle 一起使用?
我找到了一种可能对您也有用的解决方法。
在我的设置中,我有需要向主题广播新信息的定期服务,并且我有自定义主题处理程序。
首先在定期服务中注入自定义主题处理程序,并将所有订阅的主题保存在主题处理程序中,如下所示:
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');
}
}