Browse Source

Send status on client for streaming calls

SebastianThiebaud 7 năm trước cách đây
mục cha
commit
953b21805b
1 tập tin đã thay đổi với 8 bổ sung6 xóa
  1. 8 6
      Sources/gRPC/Call.swift

+ 8 - 6
Sources/gRPC/Call.swift

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