1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-04-28 20:46:05 +02:00
Files
OpenIntegrations/docs/en/examples/GRPC/InitializeServerStream.txt
T

70 lines
1.9 KiB
Plaintext
Vendored

Address = "https://grpcb.in:9001";
Proto1 = "https://hut.openintegrations.dev/test_data/grpcbin_with_import.proto"; // String, path to file or URL
Proto2 = "https://hut.openintegrations.dev/test_data/mt.proto"; // String, path to file or URL
Scheme = New Map;
Scheme.Insert("main.proto" , Proto1); // Primary
Scheme.Insert("my_types.proto", Proto2); // For import in primary
Parameters = OPI_GRPC.GetConnectionParameters(Address, Scheme);
Tls = OPI_GRPC.GetTlsSettings(True);
Service = "grpcbin.GRPCBin";
Method = "DummyServerStream";
Connection = OPI_GRPC.CreateConnection(Parameters, Tls);
If Not OPI_GRPC.IsConnector(Connection) Then
Raise Connection["error"];
EndIf;
StingsArray = New Array;
StingsArray.Add("one");
StingsArray.Add("two");
StingsArray.Add("three");
Data = New Map;
Data.Insert("f_string" , "Test message");
Data.Insert("f_int32" , 123);
Data.Insert("f_bool" , True);
Data.Insert("f_strings", StingsArray);
Data.Insert("f_sub" , New Structure("f_string", "Nested value"));
Result = OPI_GRPC.InitializeServerStream(Connection, Service, Method, Data); // <---
If Not Result["result"] Then
Raise Result["error"];
Else
StreamID = Result["streamId"];
EndIf;
MessagesArray = New Array;
While True Do
CurrentMessage = OPI_GRPC.GetMessage(Connection, StreamID);
If Not CurrentMessage["result"] Then
Error = CurrentMessage["error"];
If Error = "Timeout" Then
Continue;
ElsIf Error = "Closed" Then
Break;
Else
Raise Error;
EndIf;
Else
MessageData = CurrentMessage["message"];
If ValueIsFilled(MessageData) Then
MessagesArray.Add(MessageData);
EndIf;
EndIf;
EndDo;