コード例 #1
0
ファイル: Produce.php プロジェクト: efisuby/php-kafka
 /**
  * send message to broker
  *
  * @access public
  * @return bool|array
  */
 public function send()
 {
     $data = $this->_formatPayload();
     if (empty($data)) {
         return false;
     }
     $responseData = array();
     foreach ($data as $host => $requestData) {
         $stream = $this->client->getStream($host);
         $conn = $stream['stream'];
         $encoder = new Protocol\Encoder($conn);
         $encoder->produceRequest($requestData);
         if ((int) $this->requiredAck !== 0) {
             // get broker response
             $decoder = new Protocol\Decoder($conn);
             $response = $decoder->produceResponse();
             foreach ($response as $topicName => $info) {
                 if (!isset($responseData[$topicName])) {
                     $responseData[$topicName] = $info;
                 } else {
                     $responseData[$topicName] = array_merge($info, $responseData[$topicName]);
                 }
             }
         }
         $this->client->freeStream($stream['key']);
     }
     $this->payload = array();
     return $responseData;
 }