MqttSubscribePayload payload = message.payload(); for (MqttTopicSubscription topic : payload.topicSubscriptions()) { String topicName = topic.topicName(); byte[] topicNameBytes = encodeStringUtf8(topicName); for (MqttTopicSubscription topic : payload.topicSubscriptions()) { String topicName = topic.topicName(); byte[] topicNameBytes = encodeStringUtf8(topicName);
private static Result<MqttSubscribePayload> decodeSubscribePayload( ByteBuf buffer, int bytesRemainingInVariablePart) { final List<MqttTopicSubscription> subscribeTopics = new ArrayList<MqttTopicSubscription>(); int numberOfBytesConsumed = 0; while (numberOfBytesConsumed < bytesRemainingInVariablePart) { final Result<String> decodedTopicName = decodeString(buffer); numberOfBytesConsumed += decodedTopicName.numberOfBytesConsumed; int qos = buffer.readUnsignedByte() & 0x03; numberOfBytesConsumed++; subscribeTopics.add(new MqttTopicSubscription(decodedTopicName.value, MqttQoS.valueOf(qos))); } return new Result<MqttSubscribePayload>(new MqttSubscribePayload(subscribeTopics), numberOfBytesConsumed); }
public static Message<MqttPacketIdVariableHeader, MqttSubscribePayloadGranted> fromMqttMessage(MqttSubscribeMessage msg, List<MqttGrantedQoS> grantedQoSes, MqttVersion version, String clientId, String userName, String brokerId) { // forge topic subscriptions List<MqttTopicSubscriptionGranted> subscriptions = new ArrayList<>(); for (int i = 0; i < msg.payload().subscriptions().size(); i++) { MqttTopicSubscriptionGranted subscription = new MqttTopicSubscriptionGranted(msg.payload().subscriptions().get(i).topic(), grantedQoSes.get(i)); subscriptions.add(subscription); } return new Message<>(msg.fixedHeader(), new MqttAdditionalHeader(version, clientId, userName, brokerId), msg.variableHeader(), new MqttSubscribePayloadGranted(subscriptions)); }
private static void validateSubscribePayload(MqttSubscribePayload expected, MqttSubscribePayload actual) { List<MqttTopicSubscription> expectedTopicSubscriptions = expected.subscriptions(); List<MqttTopicSubscription> actualTopicSubscriptions = actual.subscriptions(); assertEquals( "MqttSubscribePayload TopicSubscriptionList size mismatch ", expectedTopicSubscriptions.size(), actualTopicSubscriptions.size()); for (int i = 0; i < expectedTopicSubscriptions.size(); i++) { validateTopicSubscription(expectedTopicSubscriptions.get(i), actualTopicSubscriptions.get(i)); } }
for (MqttTopicSubscription req : msg.payload().topicSubscriptions()) { Topic topic = new Topic(req.topicName()); if (!policy.canRead(topic, username, clientID)) {
public MqttSubscribeMessage build() { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.SUBSCRIBE, false, MqttQoS.AT_LEAST_ONCE, false, 0); MqttMessageIdVariableHeader mqttVariableHeader = MqttMessageIdVariableHeader.from(messageId); MqttSubscribePayload mqttSubscribePayload = new MqttSubscribePayload(subscriptions); return new MqttSubscribeMessage(mqttFixedHeader, mqttVariableHeader, mqttSubscribePayload); } }
MqttSubscribePayload payload = message.payload(); for (MqttTopicSubscription topic : payload.subscriptions()) { String topicName = topic.topic(); byte[] topicNameBytes = encodeStringUtf8(topicName); for (MqttTopicSubscription topic : payload.subscriptions()) { String topicName = topic.topic(); byte[] topicNameBytes = encodeStringUtf8(topicName);
MqttSubscribeMessage subscribe = (MqttSubscribeMessage) msg; LOG.info("{} SUBSCRIBE <{}> to topics {}", direction, clientID, subscribe.payload().topicSubscriptions()); break; case UNSUBSCRIBE:
private static Result<MqttSubscribePayload> decodeSubscribePayload( ByteBuf buffer, int bytesRemainingInVariablePart) { final List<MqttTopicSubscription> subscribeTopics = new ArrayList<MqttTopicSubscription>(); int numberOfBytesConsumed = 0; while (numberOfBytesConsumed < bytesRemainingInVariablePart) { final Result<String> decodedTopicName = decodeString(buffer); numberOfBytesConsumed += decodedTopicName.numberOfBytesConsumed; int qos = buffer.readUnsignedByte() & 0x03; numberOfBytesConsumed++; subscribeTopics.add(new MqttTopicSubscription(decodedTopicName.value, MqttQoS.valueOf(qos))); } return new Result<MqttSubscribePayload>(new MqttSubscribePayload(subscribeTopics), numberOfBytesConsumed); }
List<MqttTopicSubscription> requestSubscriptions = msg.payload().subscriptions(); return; logger.trace("Authorization granted on topic {} as {} for client {}", ArrayUtils.toString(msg.payload().subscriptions()), ArrayUtils.toString(grantedQosLevels), this.clientId);
Client client = message.getClient(); MqttSubscribeMessage subscribeMessage = (MqttSubscribeMessage) message.getPayload(); List<MqttTopicSubscription> topicSubscriptions = subscribeMessage.payload().topicSubscriptions(); List<Integer> grantQoss = new ArrayList<>(); topicSubscriptions.forEach(s -> {
private static Result<MqttSubscribePayload> decodeSubscribePayload( ByteBuf buffer, int bytesRemainingInVariablePart) { final List<MqttTopicSubscription> subscribeTopics = new ArrayList<>(); int numberOfBytesConsumed = 0; while (numberOfBytesConsumed < bytesRemainingInVariablePart) { final Result<String> decodedTopic = decodeString(buffer); numberOfBytesConsumed += decodedTopic.numberOfBytesConsumed; int qos = buffer.readUnsignedByte() & 0x03; numberOfBytesConsumed++; subscribeTopics.add(new MqttTopicSubscription(decodedTopic.value, MqttQoS.valueOf(qos))); } return new Result<>(new MqttSubscribePayload(subscribeTopics), numberOfBytesConsumed); }
/** * 订阅 */ @Override public void subscribe(Channel channel, MqttSubscribeMessage mqttSubscribeMessage) { Set<String> topics = mqttSubscribeMessage.payload().topicSubscriptions().stream().map(mqttTopicSubscription -> mqttTopicSubscription.topicName() ).collect(Collectors.toSet()); mqttChannelService.suscribeSuccess(mqttChannelService.getDeviceId(channel), topics); subBack(channel, mqttSubscribeMessage, topics.size()); }
protected void subMessage(Channel channel, List<MqttTopicSubscription> mqttTopicSubscriptions, int messageId){ MqttSubscribePayload mqttSubscribePayload = new MqttSubscribePayload(mqttTopicSubscriptions); MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.SUBSCRIBE,false, MqttQoS.AT_LEAST_ONCE,false,0); MqttMessageIdVariableHeader mqttMessageIdVariableHeader =MqttMessageIdVariableHeader.from(messageId); MqttSubscribeMessage mqttSubscribeMessage = new MqttSubscribeMessage(mqttFixedHeader,mqttMessageIdVariableHeader,mqttSubscribePayload); channel.writeAndFlush(mqttSubscribeMessage); }
private void subBack(Channel channel, MqttSubscribeMessage mqttSubscribeMessage, int num) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.SUBACK, false, MqttQoS.AT_MOST_ONCE, false, 0); MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(mqttSubscribeMessage.variableHeader().messageId()); List<Integer> grantedQoSLevels = new ArrayList<>(num); for (int i = 0; i < num; i++) { grantedQoSLevels.add(mqttSubscribeMessage.payload().topicSubscriptions().get(i).qualityOfService().value()); } MqttSubAckPayload payload = new MqttSubAckPayload(grantedQoSLevels); MqttSubAckMessage mqttSubAckMessage = new MqttSubAckMessage(mqttFixedHeader, variableHeader, payload); channel.writeAndFlush(mqttSubAckMessage); }
public MqttSubscribeMessage build() { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.SUBSCRIBE, false, MqttQoS.AT_LEAST_ONCE, false, 0); MqttMessageIdVariableHeader mqttVariableHeader = MqttMessageIdVariableHeader.from(messageId); MqttSubscribePayload mqttSubscribePayload = new MqttSubscribePayload(subscriptions); return new MqttSubscribeMessage(mqttFixedHeader, mqttVariableHeader, mqttSubscribePayload); } }
MqttSubscribePayload payload = message.payload(); for (MqttTopicSubscription topic : payload.topicSubscriptions()) { String topicName = topic.topicName(); byte[] topicNameBytes = encodeStringUtf8(topicName); for (MqttTopicSubscription topic : payload.topicSubscriptions()) { String topicName = topic.topicName(); byte[] topicNameBytes = encodeStringUtf8(topicName);
.collect(Collectors.toList()); MqttSubscribePayload payload = new MqttSubscribePayload(subscriptions);
for (MqttTopicSubscription req : msg.payload().topicSubscriptions()) { Topic topic = new Topic(req.topicName()); if (!m_authorizator.canRead(topic, username, clientSession.clientID)) {
.collect(Collectors.toList()); MqttSubscribePayload payload = new MqttSubscribePayload(subscriptions);