Pub/Sub
Get Started with Pub/ Sub in KubeMQ
Connect Your KubeMQ Cluster
kubemqctl set cluster proxySubscribe to Events Channel
kubemqctl events rec hello-worldcurl --location --request GET "http://localhost:9090/subscribe/events?client_id=some_client_id&channel=some_channel&group=some_group&subscribe_type=events" \
--header "Content-Type: application/json" \
--data ""using System;
namespace PubSub_Subscribe_to_a_Channel
{
class Program
{
static void Main(string[] args)
{
var ChannelName = "hello-world";
var ClientID = "hello-world-subscriber";
var KubeMQServerAddress = "localhost:50000";
var subscriber = new KubeMQ.SDK.csharp.Events.Subscriber(KubeMQServerAddress);
try
{
subscriber.SubscribeToEvents(new KubeMQ.SDK.csharp.Subscription.SubscribeRequest
{
Channel = ChannelName,
SubscribeType = KubeMQ.SDK.csharp.Subscription.SubscribeType.Events,
ClientID = ClientID
}, (eventReceive) =>
{
Console.WriteLine($"Event Received: EventID:{eventReceive.EventID} Channel:{eventReceive.Channel} Metadata:{eventReceive.Metadata} Body:{ KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(eventReceive.Body)} ");
},
(errorHandler) =>
{
Console.WriteLine(errorHandler.Message);
});
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine("press any key to close PubSub_Subscribe_to_a_Channel");
Console.ReadLine();
}
}
}Publish to Event Channel
kubemqctl events send hello-world "Hi KubeMQ"curl --location --request POST "http://localhost:9090/send/event"
--header "Content-Type: application/json"
--data '{"EventID": "1234-5678-90","ClientID": "events-client-id","Channel": "events-channel","Metadata": "some-metadata","Body": "c29tZSBlbmNvZGVkIGJvZHk=","Store": false}'{
"is_error": false,
"message": "OK",
"data": {
"EventID": "1234-5678-90",
"Sent": true
}
}using System;
namespace PubSub_Publish_to_a_Channel
{
class Program
{
static void Main(string[] args)
{
var ChannelName = "hello-wrold";
var ClientID = "hello-world-sender";
var KubeMQServerAddress = "localhost:50000";
var channel = new KubeMQ.SDK.csharp.Events.Channel(new KubeMQ.SDK.csharp.Events.ChannelParameters
{
ChannelName = ChannelName,
ClientID = ClientID,
KubeMQAddress = KubeMQServerAddress
});
try
{
var result = channel.SendEvent(new KubeMQ.SDK.csharp.Events.Event()
{
Body = KubeMQ.SDK.csharp.Tools.Converter.ToByteArray("hello kubemq - sending single event")
});
if (!result.Sent)
{
Console.WriteLine($"Could not send single message:{result.Error}");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}Demo
Last updated