package io.kubemq.sdk.examples.get_Started.pubSub_Subscribe_to_a_Channel;
import java.io.IOException;
import javax.net.ssl.SSLException;
import io.grpc.stub.StreamObserver;
import io.kubemq.sdk.basic.ServerAddressNotSuppliedException;
import io.kubemq.sdk.event.EventReceive;
import io.kubemq.sdk.event.Subscriber;
import io.kubemq.sdk.subscription.SubscribeRequest;
import io.kubemq.sdk.subscription.SubscribeType;
import io.kubemq.sdk.tools.Converter;
public static void main(String[] args) {
String channelName = "hello-world", clientID = "hello-world-subscriber", kubeMQAddress = "localhost:50000";
Subscriber subscriber = new Subscriber(kubeMQAddress);
SubscribeRequest subscribeRequest = new SubscribeRequest();
subscribeRequest.setChannel(channelName);
subscribeRequest.setClientID(clientID);
subscribeRequest.setSubscribeType(SubscribeType.Events);
StreamObserver<EventReceive> streamObserver = new StreamObserver<EventReceive>() {
public void onNext(EventReceive value) {
System.out.printf("Event Received: EventID: %d, Channel: %s, Metadata: %s, Body: %s",
value.getEventId(), value.getChannel(), value.getMetadata(),
Converter.FromByteArray(value.getBody()));
} catch (ClassNotFoundException e) {
System.out.printf("ClassNotFoundException: %s",e.getMessage());
} catch (IOException e) {
System.out.printf("IOException: %s",e.getMessage());
public void onError(Throwable t) {
System.out.printf("Event Received Error: %s", t.toString());
public void onCompleted() {
subscriber.SubscribeToEvents(subscribeRequest, streamObserver);
} catch (SSLException e) {
System.out.printf("SSLException: %s", e.toString());
} catch (ServerAddressNotSuppliedException e) {
System.out.printf("ServerAddressNotSuppliedException: %s", e.toString());