endpoint.unsubscribeHandler(unsubscribe -> {
/** * Set a unsubscribe handler on the MQTT endpoint. This handler is called when a UNSUBSCRIBE * message is received by the remote MQTT client * @param handler the handler * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.mqtt.MqttEndpoint unsubscribeHandler(Handler<io.vertx.rxjava.mqtt.messages.MqttUnsubscribeMessage> handler) { delegate.unsubscribeHandler(new Handler<io.vertx.mqtt.messages.MqttUnsubscribeMessage>() { public void handle(io.vertx.mqtt.messages.MqttUnsubscribeMessage event) { handler.handle(io.vertx.rxjava.mqtt.messages.MqttUnsubscribeMessage.newInstance(event)); } }); return this; }
/** * Set a unsubscribe handler on the MQTT endpoint. This handler is called when a UNSUBSCRIBE * message is received by the remote MQTT client * @param handler the handler * @return a reference to this, so the API can be used fluently */ public MqttEndpoint unsubscribeHandler(Handler<MqttUnsubscribeMessage> handler) { delegate.unsubscribeHandler(new Handler<io.vertx.mqtt.messages.MqttUnsubscribeMessage>() { public void handle(io.vertx.mqtt.messages.MqttUnsubscribeMessage event) { handler.handle(MqttUnsubscribeMessage.newInstance(event)); } }); return this; }
/** * Set a unsubscribe handler on the MQTT endpoint. This handler is called when a UNSUBSCRIBE * message is received by the remote MQTT client * @param handler the handler * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.mqtt.MqttEndpoint unsubscribeHandler(Handler<io.vertx.rxjava.mqtt.messages.MqttUnsubscribeMessage> handler) { delegate.unsubscribeHandler(new Handler<io.vertx.mqtt.messages.MqttUnsubscribeMessage>() { public void handle(io.vertx.mqtt.messages.MqttUnsubscribeMessage event) { handler.handle(io.vertx.rxjava.mqtt.messages.MqttUnsubscribeMessage.newInstance(event)); } }); return this; }
/** * Invoked when a client sends its <em>CONNECT</em> packet and client authentication has been disabled by setting * the {@linkplain ProtocolAdapterProperties#isAuthenticationRequired() authentication required} configuration * property to {@code false}. * <p> * Registers a close handler on the endpoint which invokes {@link #close(MqttEndpoint, Device)}. Registers a publish * handler on the endpoint which invokes {@link #onPublishedMessage(MqttContext)} for each message being published * by the client. Accepts the connection request. * * @param endpoint The MQTT endpoint representing the client. */ private Future<Device> handleEndpointConnectionWithoutAuthentication(final MqttEndpoint endpoint) { endpoint.closeHandler(v -> close(endpoint, null)); endpoint.publishHandler(message -> handlePublishedMessage(new MqttContext(message, endpoint))); endpoint.subscribeHandler(subscribeMsg -> onSubscribe(endpoint, null, subscribeMsg)); endpoint.unsubscribeHandler(unsubscribeMsg -> onUnsubscribe(endpoint, null, unsubscribeMsg)); LOG.debug("unauthenticated device [clientId: {}] connected", endpoint.clientIdentifier()); metrics.incrementUnauthenticatedConnections(); return Future.succeededFuture(); }
private Future<Device> registerHandlers(final MqttEndpoint endpoint, final Device authenticatedDevice) { endpoint.closeHandler(v -> close(endpoint, authenticatedDevice)); endpoint.publishHandler( message -> handlePublishedMessage(new MqttContext(message, endpoint, authenticatedDevice))); endpoint.subscribeHandler(subscribeMsg -> onSubscribe(endpoint, authenticatedDevice, subscribeMsg)); endpoint.unsubscribeHandler(unsubscribeMsg -> onUnsubscribe(endpoint, authenticatedDevice, unsubscribeMsg)); metrics.incrementConnections(authenticatedDevice.getTenantId()); return Future.succeededFuture(authenticatedDevice); }
/** * Setup handlers for MQTT endpoint */ private void setupMqttEndpoint() { this.mqttEndpoint .publishHandler(this::publishHandler) .publishAcknowledgeHandler(this::pubackHandler) .publishReleaseHandler(this::pubrelHandler) .publishReceivedHandler(this::pubrecHandler) .publishCompletionHandler(this::pubcompHandler) .subscribeHandler(this::subscribeHandler) .unsubscribeHandler(this::unsubscribeHandler) .disconnectHandler(this::disconnectHandler) .closeHandler(this::closeHandler); }
@Override protected void endpointHandler(MqttEndpoint endpoint, TestContext context) { endpoint.subscribeHandler(subscribe -> { List<MqttQoS> qos = new ArrayList<>(); qos.add(subscribe.topicSubscriptions().get(0).qualityOfService()); endpoint.subscribeAcknowledge(subscribe.messageId(), qos); this.subscribeAsync.complete(); }).unsubscribeHandler(unsubscribe -> { endpoint.unsubscribeAcknowledge(unsubscribe.messageId()); this.unsubscribeAsync.complete(); }); endpoint.accept(false); } }
@Override protected void endpointHandler(MqttEndpoint endpoint, TestContext context) { endpoint.subscribeHandler(subscribe -> { List<MqttQoS> qos = new ArrayList<>(); qos.add(subscribe.topicSubscriptions().get(0).qualityOfService()); endpoint.subscribeAcknowledge(subscribe.messageId(), qos); this.subscribeAsync.complete(); }).unsubscribeHandler(unsubscribe -> { endpoint.unsubscribeAcknowledge(unsubscribe.messageId()); this.unsubscribeAsync.complete(); }); endpoint.accept(false); } }
private Future<Device> registerHandlers(final MqttEndpoint endpoint, final Device authenticatedDevice) { final CommandHandler<T> cmdHandler = new CommandHandler<>(vertx, getConfig()); endpoint.closeHandler(v -> close(endpoint, authenticatedDevice, cmdHandler)); endpoint.publishHandler( message -> handlePublishedMessage(MqttContext.fromPublishPacket(message, endpoint, authenticatedDevice))); endpoint.publishAcknowledgeHandler(msgId -> cmdHandler.handlePubAck(msgId, afterCommandPubAckedConsumer)); endpoint.subscribeHandler(subscribeMsg -> onSubscribe(endpoint, authenticatedDevice, subscribeMsg, cmdHandler)); endpoint.unsubscribeHandler(unsubscribeMsg -> onUnsubscribe(endpoint, authenticatedDevice, unsubscribeMsg, cmdHandler)); if (authenticatedDevice == null) { metrics.incrementUnauthenticatedConnections(); } else { metrics.incrementConnections(authenticatedDevice.getTenantId()); } return Future.succeededFuture(authenticatedDevice); }