private static void Commands_Receiving_Commands_Requests() { string ChannelName = "testing_command_channel", ClientID = "hello-world-subscriber", KubeMQServerAddress = "localhost:50000"; KubeMQ.SDK.csharp.CommandQuery.Responder responder = new KubeMQ.SDK.csharp.CommandQuery.Responder(KubeMQServerAddress, tempAuthToken); try { responder.SubscribeToRequests(new KubeMQ.SDK.csharp.Subscription.SubscribeRequest() { Channel = ChannelName, SubscribeType = KubeMQ.SDK.csharp.Subscription.SubscribeType.Commands, ClientID = ClientID }, (commandReceive) => { Console.WriteLine($"Command Received: Id:{commandReceive.RequestID} Channel:{commandReceive.Channel} Metadata:{commandReceive.Metadata} Body:{ KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(commandReceive.Body)} "); return(new KubeMQ.SDK.csharp.CommandQuery.Response(commandReceive) { Body = new byte[0], CacheHit = false, Error = "None", ClientID = ClientID, Executed = true, Metadata = string.Empty, Timestamp = DateTime.UtcNow, }); }, (errorHandler) => { Console.WriteLine(errorHandler.Message); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
static async Task CommandHanleAndEnqueue(MessageQueue sendMQ) { /// Init a new CommandQuery subscriber on the KubeMQ to receive commands KubeMQ.SDK.csharp.CommandQuery.Responder responder = new KubeMQ.SDK.csharp.CommandQuery.Responder(); Console.WriteLine($"[Demo][CommandHanleAndEnqueue] init KubeMQ CommandQuery subscriber :{CMDChannel}"); responder.SubscribeToRequests(new KubeMQ.SDK.csharp.Subscription.SubscribeRequest() { SubscribeType = KubeMQ.SDK.csharp.Subscription.SubscribeType.Commands, Channel = CMDChannel, ClientID = ClientID }, (KubeMQ.SDK.csharp.CommandQuery.RequestReceive request) => { Console.WriteLine($"[Demo][CommandHanleAndEnqueue] CommandQuery RequestReceive :{request}"); KubeMQ.SDK.csharp.CommandQuery.Response response; string strMsg = string.Empty; object body = System.Text.Encoding.Default.GetString(request.Body); try { sendMQ.Send(new Message { Body = body, Formatter = new ActiveXMessageFormatter() }); } catch (Exception ex) { Console.WriteLine($"[Demo][CommandHanleAndEnqueue] Error CommandQuery send response :{ex.Message}"); response = new KubeMQ.SDK.csharp.CommandQuery.Response(request) { Body = Encoding.UTF8.GetBytes(ex.Message), Error = $"Received error from KubeMQ.MSMQ {ex.Message}", ClientID = ClientID, Metadata = "Bad", Timestamp = DateTime.UtcNow }; Console.WriteLine($"[Demo][CommandHanleAndEnqueue] CommandQuery send response :{response}"); return(response); } response = new KubeMQ.SDK.csharp.CommandQuery.Response(request) { Body = Encoding.UTF8.GetBytes("o.k"), Error = "None", ClientID = ClientID, Executed = true, Metadata = "OK", Timestamp = DateTime.UtcNow, }; Console.WriteLine($"[Demo][CommandHanleAndEnqueue] CommandQuery send response :{response}"); return(response); }); }
static void Main(string[] args) { var ChannelName = "testing_RPC_channel"; var ClientID = "hello-world-subscriber"; var KubeMQServerAddress = "localhost:50000"; KubeMQ.SDK.csharp.CommandQuery.Responder responder = new KubeMQ.SDK.csharp.CommandQuery.Responder(KubeMQServerAddress); try { responder.SubscribeToRequests(new KubeMQ.SDK.csharp.Subscription.SubscribeRequest() { Channel = ChannelName, SubscribeType = KubeMQ.SDK.csharp.Subscription.SubscribeType.Commands, ClientID = ClientID }, (commandReceive) => { Console.WriteLine($"Command Received: Id:{commandReceive.RequestID} Channel:{commandReceive.Channel} Metadata:{commandReceive.Metadata} Body:{ KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(commandReceive.Body)} "); return(new KubeMQ.SDK.csharp.CommandQuery.Response(commandReceive) { Body = new byte[0], CacheHit = false, Error = "None", ClientID = ClientID, Executed = true, Metadata = string.Empty, Timestamp = DateTime.UtcNow, }); }, (errorHandler) => { Console.WriteLine(errorHandler.Message); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("press any key to close RPC_Subscribe_to_a_Channel"); Console.ReadLine(); }