Browse Source

Send status on client for streaming calls

SebastianThiebaud 7 years ago
parent
commit
953b21805b
1 changed files with 8 additions and 6 deletions
  1. 8 6
      Sources/gRPC/Call.swift

+ 8 - 6
Sources/gRPC/Call.swift

@@ -219,11 +219,11 @@ public class Call {
       }
       }
       operations = [
       operations = [
         .sendInitialMetadata(metadata.copy()),
         .sendInitialMetadata(metadata.copy()),
+        .sendMessage(ByteBuffer(data:message)),
+        .sendCloseFromClient,
         .receiveInitialMetadata,
         .receiveInitialMetadata,
+        .receiveMessage,
         .receiveStatusOnClient,
         .receiveStatusOnClient,
-        .sendMessage(ByteBuffer(data: message)),
-        .sendCloseFromClient,
-        .receiveMessage
       ]
       ]
     case .serverStreaming:
     case .serverStreaming:
       guard let message = message else {
       guard let message = message else {
@@ -231,14 +231,16 @@ public class Call {
       }
       }
       operations = [
       operations = [
         .sendInitialMetadata(metadata.copy()),
         .sendInitialMetadata(metadata.copy()),
+        .sendMessage(ByteBuffer(data:message)),
+        .sendCloseFromClient,
         .receiveInitialMetadata,
         .receiveInitialMetadata,
-        .sendMessage(ByteBuffer(data: message)),
-        .sendCloseFromClient
+        .receiveStatusOnClient,
       ]
       ]
     case .clientStreaming, .bidiStreaming:
     case .clientStreaming, .bidiStreaming:
       operations = [
       operations = [
         .sendInitialMetadata(metadata.copy()),
         .sendInitialMetadata(metadata.copy()),
-        .receiveInitialMetadata
+        .receiveInitialMetadata,
+        .receiveStatusOnClient,
       ]
       ]
     }
     }
     try perform(OperationGroup(call: self,
     try perform(OperationGroup(call: self,