示例#1
0
 /**
  * @param ZmqEvent $event
  * @return mixed
  */
 public function __invoke($event)
 {
     return Observable::create(function (ObserverInterface $observer) use($event) {
         $id = $event->getLabel('id');
         $req = new ZmqRequest();
         $req->subscribe($observer);
         $disposable = $this->source->filter(function (Event $event) use($id) {
             return $event->hasLabel('id', $id);
         })->take(1)->subscribe($req);
         $req->subscribeCallback(null, null, function () use($disposable) {
             $disposable->dispose();
         });
         return new CallbackDisposable(function () use($disposable) {
             $disposable->dispose();
         });
     });
 }