当前位置: 首页>>代码示例>>Java>>正文


Java MqttMessageType类代码示例

本文整理汇总了Java中io.netty.handler.codec.mqtt.MqttMessageType的典型用法代码示例。如果您正苦于以下问题:Java MqttMessageType类的具体用法?Java MqttMessageType怎么用?Java MqttMessageType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


MqttMessageType类属于io.netty.handler.codec.mqtt包,在下文中一共展示了MqttMessageType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: connect

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
public static MqttConnectMessage connect(ConnectOptions options) {
	MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, false, MqttQoS.AT_MOST_ONCE, false,
			10);
	MqttConnectVariableHeader variableHeader = new MqttConnectVariableHeader(options.version().protocolName(),
			options.version().protocolLevel(), options.userName() != null, options.password() != null,
			options.will() == null ? false : options.will().isRetain(),
			options.will() == null ? 0 : options.will().qos().value(), options.will() != null,
			options.cleanSession(), options.keepAliveTimeSeconds());

	MqttConnectPayload payload = new MqttConnectPayload(Strings.nullToEmpty(options.clientId()),
			options.will() == null ? "" : options.will().topicName(),
			options.will() == null ? "" : new String(options.will().message(), CharsetUtil.UTF_8),
			Strings.nullToEmpty(options.userName()), Strings.nullToEmpty(options.password()));

	return new MqttConnectMessage(fixedHeader, variableHeader, payload);
}
 
开发者ID:anyflow,项目名称:lannister,代码行数:17,代码来源:MqttMessageFactory.java

示例2: executeNormalChannelRead0

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
private MqttConnAckMessage executeNormalChannelRead0(String clientId, boolean cleanSession, ChannelId channelId)
		throws Exception {
	MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, false, MqttQoS.AT_MOST_ONCE, false,
			10);
	MqttConnectVariableHeader variableHeader = new MqttConnectVariableHeader("MQTT", 4, true, true, true, 0, true,
			cleanSession, 60);
	MqttConnectPayload payload = new MqttConnectPayload(clientId, "willtopic", "willmessage", "username",
			"password");

	MqttConnectMessage msg = new MqttConnectMessage(fixedHeader, variableHeader, payload);

	ChannelId cid = channelId == null ? TestUtil.newChannelId(clientId, false) : channelId;

	EmbeddedChannel channel = new EmbeddedChannel(cid, new ConnectReceiver());

	channel.writeInbound(msg);

	return channel.readOutbound();
}
 
开发者ID:anyflow,项目名称:lannister,代码行数:20,代码来源:ConnectReceiverTest.java

示例3: channelRead

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
@Override
public void channelRead(ChannelHandlerContext ctx, Object message) {
    MqttMessage msg = (MqttMessage) message;
    MqttMessageType messageType = msg.fixedHeader().messageType();

    try {
        switch (messageType) {
            case PUBLISH:
                LOG.info("Received a message of type {}", messageType);
                handlePublish((MqttPublishMessage) msg);
                return;
            default:
                LOG.info("Received a message of type {}", messageType);
        }
    } catch (Exception ex) {
        LOG.error("Bad error in processing the message", ex);
    }
}
 
开发者ID:andsel,项目名称:moquette,代码行数:19,代码来源:PublishReceiverHandler.java

示例4: channelRead

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
@Override
public void channelRead(ChannelHandlerContext ctx, Object message) {
    MqttMessage msg = (MqttMessage) message;
    MqttMessageType type = msg.fixedHeader().messageType();

    try {
        switch (type) {
            case PUBLISH:
                LOG.info("Received a message of type {}", type);
                handlePublish((MqttPublishMessage) msg);
                return;
            default:
                LOG.info("Received a message of type {}", type);
        }
    } catch (Exception ex) {
        LOG.error("Bad error in processing the message", ex);
    }
}
 
开发者ID:andsel,项目名称:moquette,代码行数:19,代码来源:NettyPublishReceiverHandler.java

示例5: sendPubAck

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
private void sendPubAck(String clientId, int messageID) {
    LOG.trace("sendPubAck invoked");
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, false, AT_MOST_ONCE, false, 0);
    MqttPubAckMessage pubAckMessage = new MqttPubAckMessage(fixedHeader, from(messageID));

    try {
        if (connectionDescriptors == null) {
            throw new RuntimeException("Internal bad error, found connectionDescriptors to null while it should " +
                "be initialized, somewhere it's overwritten!!");
        }
        LOG.trace("connected clientIDs are {}", connectionDescriptors.getConnectedClientIds());
        if (!connectionDescriptors.isConnected(clientId)) {
            throw new RuntimeException(String.format("Can't find a ConnectionDescriptor for client %s in cache %s",
                clientId, connectionDescriptors));
        }
        connectionDescriptors.sendMessage(pubAckMessage, messageID, clientId);
    } catch (Throwable t) {
        LOG.error(null, t);
    }
}
 
开发者ID:andsel,项目名称:moquette,代码行数:21,代码来源:Qos1PublishHandler.java

示例6: channelRead

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
@Override
public void channelRead(ChannelHandlerContext ctx, Object message) {
    MqttMessage msg = (MqttMessage) message;
    MqttMessageType messageType = msg.fixedHeader().messageType();
    switch (messageType) {
        case PUBLISH:
            this.publishesMetrics.mark();
            break;
        case SUBSCRIBE:
            this.subscribeMetrics.mark();
            break;
        case CONNECT:
            this.connectedClientsMetrics.inc();
            break;
        case DISCONNECT:
            this.connectedClientsMetrics.dec();
            break;
        default:
            break;
    }
    ctx.fireChannelRead(message);
}
 
开发者ID:andsel,项目名称:moquette,代码行数:23,代码来源:DropWizardMetricsHandler.java

示例7: mapToInternal

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
/**
 * Convert Map to InternalMessage
 *
 * @param map Map
 * @return InternalMessage
 */
public static InternalMessage mapToInternal(Map<String, String> map) {
    if (map == null || map.isEmpty()) return null;

    int type = Integer.parseInt(map.get("type"));
    if (type == MqttMessageType.PUBLISH.value()) {
        byte[] payload = null;
        if (map.get("payload") != null) try {
            payload = map.get("payload").getBytes("ISO-8859-1");
        } catch (UnsupportedEncodingException ignore) {
        }
        return new InternalMessage<>(
                MqttMessageType.PUBLISH,
                BooleanUtils.toBoolean(map.getOrDefault("dup", "0"), "1", "0"),
                MqttQoS.valueOf(Integer.parseInt(map.getOrDefault("qos", "0"))),
                BooleanUtils.toBoolean(map.getOrDefault("retain", "0"), "1", "0"),
                MqttVersion.valueOf(map.getOrDefault("version", MqttVersion.MQTT_3_1_1.toString())),
                map.get("clientId"),
                map.get("userName"),
                null,
                new Publish(
                        map.get("topicName"),
                        Integer.parseInt(map.getOrDefault("packetId", "0")),
                        payload
                ));
    } else if (type == MqttMessageType.PUBREL.value()) {
        return new InternalMessage<>(
                MqttMessageType.PUBREL,
                false,
                MqttQoS.AT_LEAST_ONCE,
                false,
                MqttVersion.valueOf(map.getOrDefault("version", MqttVersion.MQTT_3_1_1.toString())),
                map.get("clientId"),
                map.get("userName"),
                null,
                new PacketId(Integer.parseInt(map.getOrDefault("packetId", "0"))));
    } else {
        throw new IllegalArgumentException("Invalid in-flight MQTT message type: " + MqttMessageType.valueOf(type));
    }
}
 
开发者ID:12315jack,项目名称:j1st-mqtt,代码行数:46,代码来源:Converter.java

示例8: internalToMap

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
/**
 * Convert InternalMessage to Map
 *
 * @param msg InternalMessage
 * @return Map
 */
public static Map<String, String> internalToMap(InternalMessage msg) {
    Map<String, String> map = new HashMap<>();
    if (msg == null) return map;

    if (msg.getMessageType() == MqttMessageType.PUBLISH) {
        Publish publish = (Publish) msg.getPayload();
        map.put("type", String.valueOf(MqttMessageType.PUBLISH.value()));
        map.put("retain", BooleanUtils.toString(msg.isRetain(), "1", "0"));
        map.put("qos", String.valueOf(msg.getQos().value()));
        map.put("dup", BooleanUtils.toString(msg.isDup(), "1", "0"));
        map.put("version", msg.getVersion().toString());
        if (!msg.isRetain()) map.put("clientId", msg.getClientId());
        map.put("userName", msg.getUserName());
        map.put("topicName", publish.getTopicName());
        if (!msg.isRetain()) map.put("packetId", String.valueOf(publish.getPacketId()));
        if (publish.getPayload() != null && publish.getPayload().length > 0) try {
            map.put("payload", new String(publish.getPayload(), "ISO-8859-1"));
        } catch (UnsupportedEncodingException ignore) {
        }
        return map;
    } else if (msg.getMessageType() == MqttMessageType.PUBREL) {
        PacketId packetId = (PacketId) msg.getPayload();
        map.put("type", String.valueOf(MqttMessageType.PUBREL.value()));
        map.put("version", msg.getVersion().toString());
        map.put("clientId", msg.getClientId());
        map.put("userName", msg.getUserName());
        map.put("packetId", String.valueOf(packetId.getPacketId()));
        return map;
    } else {
        throw new IllegalArgumentException("Invalid in-flight MQTT message type: " + msg.getMessageType());
    }
}
 
开发者ID:12315jack,项目名称:j1st-mqtt,代码行数:39,代码来源:Converter.java

示例9: channelRead

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    if (msg instanceof MqttMessage) {
        MqttMessage mqtt = (MqttMessage) msg;
        if (StringUtils.isBlank(this.clientId) && mqtt.fixedHeader().messageType() == MqttMessageType.CONNECT) {
            this.clientId = ((MqttConnectPayload) mqtt.payload()).clientId();
        }
        if (StringUtils.isNotBlank(this.clientId)) {
            this.metrics.measurement(this.clientId, this.brokerId, MessageDirection.IN, mqtt.fixedHeader().messageType());
        }
        this.metrics.measurement(this.brokerId, MessageDirection.IN, mqtt.fixedHeader().messageType());
    }
    ctx.fireChannelRead(msg);
}
 
开发者ID:12315jack,项目名称:j1st-mqtt,代码行数:15,代码来源:MessageMetricsHandler.java

示例10: measurement

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
@Override
public void measurement(String clientId, String brokerId, MessageDirection direction, MqttMessageType type) {
    Point point = Point.measurement("mqtt_client_" + clientId)
            .time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
            .tag("broker", brokerId)
            .tag("direction", direction.toString())
            .tag("type", getMessageTypeName(type))
            .field("count", 1L)
            .build();
    this.influxDB.write(this.dbName, "default", point);
}
 
开发者ID:12315jack,项目名称:j1st-mqtt,代码行数:12,代码来源:InfluxDBMetricsService.java

示例11: getMessageTypeName

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
protected String getMessageTypeName(MqttMessageType type) {
    switch (type) {
        case CONNECT:
            return "connect";
        case CONNACK:
            return "connack";
        case PUBLISH:
            return "publish";
        case PUBACK:
            return "puback";
        case PUBREC:
            return "pubrec";
        case PUBREL:
            return "pubrel";
        case PUBCOMP:
            return "pubcomp";
        case SUBSCRIBE:
            return "subscribe";
        case SUBACK:
            return "suback";
        case UNSUBSCRIBE:
            return "unsubscribe";
        case UNSUBACK:
            return "unsuback";
        case PINGREQ:
            return "pingreq";
        case PINGRESP:
            return "pingresp";
        case DISCONNECT:
            return "disconnect";
        default:
            return "unknown";
    }
}
 
开发者ID:12315jack,项目名称:j1st-mqtt,代码行数:35,代码来源:InfluxDBMetricsService.java

示例12: find

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
public static void find(){
    Set<Class<?>> validatorClasses = find(Validator.class, VALIDATOR_PKG);
    Iterator<Class<?>> iterator = validatorClasses.iterator();
    while(iterator.hasNext()){
        Class<?> cls = iterator.next();
        Validator validator = cls.getAnnotation(Validator.class);
        MqttMessageType type = validator.type();
        switch (type){
            case CONNECT:
                buildConnectValidatorCache(cls);
                break;
        }
    }
}
 
开发者ID:Dovakin-IO,项目名称:DovakinMQ,代码行数:15,代码来源:AnnotationFinder.java

示例13: doMessage

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
public MqttMessage doMessage(Channel channel, MqttMessage msg) {
    String channelId = channel.id().asLongText();
    logger.debug("MQTT PINGREQ " + channelId);

    // 更新最新连接时间
    ApplicationContext.updateChannelConTime(channelId);

    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, false, MqttQoS.AT_MOST_ONCE, false, 0);
    MqttMessage message = new MqttMessage(fixedHeader);

    return message;
}
 
开发者ID:airballcz,项目名称:iot-platform,代码行数:13,代码来源:PingReqHandler.java

示例14: onMsg

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
@Override
public void onMsg(SessionCtrlMsg msg) throws SessionException {
  if (msg instanceof SessionCloseMsg) {
    pushToNetwork(
        new MqttMessage(new MqttFixedHeader(MqttMessageType.DISCONNECT, false, MqttQoS.AT_MOST_ONCE, false, 0)));
    channel.close();
  }
}
 
开发者ID:osswangxining,项目名称:iotplatform,代码行数:9,代码来源:DeviceSessionCtx.java

示例15: createMqttPublishMsg

import io.netty.handler.codec.mqtt.MqttMessageType; //导入依赖的package包/类
private MqttPublishMessage createMqttPublishMsg(DeviceSessionCtx ctx, String topic, JsonElement json) {
  MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, false, MqttQoS.AT_LEAST_ONCE, false,
      0);
  MqttPublishVariableHeader header = new MqttPublishVariableHeader(topic, ctx.nextMsgId());
  ByteBuf payload = ALLOCATOR.buffer();
  payload.writeBytes(GSON.toJson(json).getBytes(UTF8));
  return new MqttPublishMessage(mqttFixedHeader, header, payload);
}
 
开发者ID:osswangxining,项目名称:iotplatform,代码行数:9,代码来源:JsonMqttAdaptor.java


注:本文中的io.netty.handler.codec.mqtt.MqttMessageType类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。