client.publishHandler(publish -> { System.out.println("Just received message on [" + publish.topicName() + "] payload [" + publish.payload().toString(Charset.defaultCharset()) + "] with QoS [" + publish.qosLevel() + "]"); });
/** * Sets handler which will be called each time server publish something to client * @param publishHandler handler to call * @return current MQTT client instance */ public io.vertx.rxjava.mqtt.MqttClient publishHandler(Handler<io.vertx.rxjava.mqtt.messages.MqttPublishMessage> publishHandler) { delegate.publishHandler(new Handler<io.vertx.mqtt.messages.MqttPublishMessage>() { public void handle(io.vertx.mqtt.messages.MqttPublishMessage event) { publishHandler.handle(io.vertx.rxjava.mqtt.messages.MqttPublishMessage.newInstance(event)); } }); return this; }
/** * Sets handler which will be called each time server publish something to client * @param publishHandler handler to call * @return current MQTT client instance */ public io.vertx.rxjava.mqtt.MqttClient publishHandler(Handler<io.vertx.rxjava.mqtt.messages.MqttPublishMessage> publishHandler) { delegate.publishHandler(new Handler<io.vertx.mqtt.messages.MqttPublishMessage>() { public void handle(io.vertx.mqtt.messages.MqttPublishMessage event) { publishHandler.handle(io.vertx.rxjava.mqtt.messages.MqttPublishMessage.newInstance(event)); } }); return this; }
private void subscribeAndReceive(TestContext context, MqttQoS qos) { Async async = context.async(); MqttClient client = MqttClient.create(Vertx.vertx()); client.publishHandler(publish -> { assertTrue(publish.qosLevel() == qos); log.info("Just received message on [" + publish.topicName() + "] payload [" + publish.payload().toString(Charset.defaultCharset()) + "] with QoS [" + publish.qosLevel() + "]"); client.disconnect(); async.countDown(); }); client.connect(TestUtil.BROKER_PORT, TestUtil.BROKER_ADDRESS, ar -> { assertTrue(ar.succeeded()); client.subscribe(MQTT_TOPIC, qos.value()); client.publish( MQTT_TOPIC, Buffer.buffer(MQTT_MESSAGE.getBytes()), qos, false, false ); }); async.await(); }
private void subscribeAndReceive(TestContext context, MqttQoS qos) { Async async = context.async(); MqttClient client = MqttClient.create(Vertx.vertx()); client.publishHandler(publish -> { assertTrue(publish.qosLevel() == qos); log.info("Just received message on [" + publish.topicName() + "] payload [" + publish.payload().toString(Charset.defaultCharset()) + "] with QoS [" + publish.qosLevel() + "]"); client.disconnect(); async.countDown(); }); client.connect(TestUtil.BROKER_PORT, TestUtil.BROKER_ADDRESS, ar -> { assertTrue(ar.succeeded()); client.subscribe(MQTT_TOPIC, qos.value()); client.publish( MQTT_TOPIC, Buffer.buffer(MQTT_MESSAGE.getBytes()), qos, false, false ); }); async.await(); }
subscriber1.publishHandler(message -> { log.error("Subscriber " + subscriber1.clientId() + " received message " + new String(message.payload().getBytes())); context.fail(); subscriber2.publishHandler(message -> { log.error("Subscriber " + subscriber2.clientId() + " received message " + new String(message.payload().getBytes())); async.complete();
subscriber1.publishHandler(message -> { log.error("Subscriber " + subscriber1.clientId() + " received message " + new String(message.payload().getBytes())); context.fail(); subscriber2.publishHandler(message -> { log.error("Subscriber " + subscriber2.clientId() + " received message " + new String(message.payload().getBytes())); async.complete();