checkArgument(handler != null, "handler can't be null");
ensureConnection();
final ClientSessionChannel channel = getChannel(object);
final MessageListenerAdapter listener = new MessageListenerAdapter(handler, channel, object);
final ClientSessionChannel metaSubscribeChannel = session.getChannel(ClientSessionChannel.META_SUBSCRIBE);
metaSubscribeChannel.addListener(new SubscriptionSuccessListener(new SubscriptionRecord(object, handler) , listener, metaSubscribeChannel, channel));
channel.subscribe(listener);
return listener.getSubscription();
}