| 
					
				 | 
			
			
				@@ -55,13 +55,11 @@ class ServerStreamingCall extends AbstractCall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (array_key_exists('flags', $options)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $message_array['flags'] = $options['flags']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $event = $this->call->startBatch([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $this->call->startBatch([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             OP_SEND_INITIAL_METADATA => $metadata, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            OP_RECV_INITIAL_METADATA => true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             OP_SEND_MESSAGE => $message_array, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             OP_SEND_CLOSE_FROM_CLIENT => true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $this->metadata = $event->metadata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,9 +67,15 @@ class ServerStreamingCall extends AbstractCall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function responses() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $response = $this->call->startBatch([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            OP_RECV_MESSAGE => true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ])->message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $batch = [OP_RECV_MESSAGE => true]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($this->metadata === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $batch[OP_RECV_INITIAL_METADATA] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $read_event = $this->call->startBatch($batch); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($this->metadata === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $this->metadata = $read_event->metadata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $response = $read_event->message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         while ($response !== null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             yield $this->_deserializeResponse($response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $response = $this->call->startBatch([ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -96,4 +100,16 @@ class ServerStreamingCall extends AbstractCall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $status_event->status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return mixed The metadata sent by the server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function getMetadata() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($this->metadata === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $event = $this->call->startBatch([OP_RECV_INITIAL_METADATA => true]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $this->metadata = $event->metadata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->metadata; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |