Example #1
0
 public function onNext($event)
 {
     $data = $this->parser->pushIncoming($event->data);
     $this->notifyNext(new Event("/redis/response", Arrays::first($data)->getValueNative()));
     $this->notifyCompleted();
 }
Example #2
0
 /**
  * @param $host
  * @param string $masterName
  * @return AnonymousObservable
  */
 public function connectSentinel($host, $masterName = 'mymaster')
 {
     list($host, $port) = explode(':', $host);
     $connector = new Tcp($this->loop);
     return $connector->connect($host, $port)->flatMap(function (ConnectorEvent $event) use($masterName) {
         $stream = $event->getStream();
         // tweak for stream select
         $stream = new RedisStream($stream->getSocket(), $this->loop);
         $stream->write("SENTINEL get-master-addr-by-name {$masterName} \r\n");
         return $stream;
     })->flatMap(function (StreamEvent $event) use($connector) {
         $parser = new ResponseParser();
         $data = $parser->pushIncoming($event->getData());
         $data = $data[0]->getValueNative();
         $connector->disconnect();
         return $this->connect("{$data[0]}:{$data[1]}");
     });
 }