io.netty.handler.codec.mqtt.MqttUnsubscribePayload #io.netty.handler.codec.mqtt.MqttUnsubAckMessage源码实例Demo

下面列出了 io.netty.handler.codec.mqtt.MqttUnsubscribePayload #io.netty.handler.codec.mqtt.MqttUnsubAckMessage 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: iot-mqtt   文件: UnSubscribeProcessor.java

@Override
public void processRequest(ChannelHandlerContext ctx, MqttMessage mqttMessage) {
    MqttUnsubscribeMessage unsubscribeMessage = (MqttUnsubscribeMessage) mqttMessage;
    MqttUnsubscribePayload unsubscribePayload = unsubscribeMessage.payload();
    List<String> topics = unsubscribePayload.topics();
    String clientId = NettyUtil.getClientId(ctx.channel());
    ClientSession clientSession = ConnectManager.getInstance().getClient(clientId);
    if(Objects.isNull(clientSession)){
        log.warn("[UnSubscribe] -> The client is not online.clientId={}",clientId);
    }
    topics.forEach( topic -> {
        subscriptionMatcher.unSubscribe(topic,clientId);
        subscriptionStore.removeSubscription(clientId,topic);
        //停止发送系统信息
        if(SysToipc.SYS.equals(topic)) {
        	sysMessageService.removeClient(clientSession.getClientId());
        }
    });
    MqttUnsubAckMessage unsubAckMessage = MessageUtil.getUnSubAckMessage(MessageUtil.getMessageId(mqttMessage));
    ctx.writeAndFlush(unsubAckMessage);
}
 
源代码2 项目: jmqtt   文件: UnSubscribeProcessor.java

@Override
public void processRequest(ChannelHandlerContext ctx, MqttMessage mqttMessage) {
    MqttUnsubscribeMessage unsubscribeMessage = (MqttUnsubscribeMessage) mqttMessage;
    MqttUnsubscribePayload unsubscribePayload = unsubscribeMessage.payload();
    List<String> topics = unsubscribePayload.topics();
    String clientId = NettyUtil.getClientId(ctx.channel());
    ClientSession clientSession = ConnectManager.getInstance().getClient(clientId);
    if(Objects.isNull(clientSession)){
        log.warn("[UnSubscribe] -> The client is not online.clientId={}",clientId);
    }
    topics.forEach( topic -> {
        subscriptionMatcher.unSubscribe(topic,clientId);
        subscriptionStore.removeSubscription(clientId,topic);
    });
    MqttUnsubAckMessage unsubAckMessage = MessageUtil.getUnSubAckMessage(MessageUtil.getMessageId(mqttMessage));
    ctx.writeAndFlush(unsubAckMessage);
}
 

/**
 * B - S
 * @param channel
 * @param mqttMessage
 */
public void processUnSubBack(Channel channel, MqttMessage mqttMessage) {
	int messageId;
	if (mqttMessage instanceof MqttUnsubAckMessage) {
		MqttUnsubAckMessage mqttUnsubAckMessage = (MqttUnsubAckMessage) mqttMessage;
		messageId = mqttUnsubAckMessage.variableHeader().messageId();
	} else {
		MqttMessageIdVariableHeader o = (MqttMessageIdVariableHeader) mqttMessage.variableHeader();
		messageId = o.messageId();
		NettyLog.error("not UnsubAckMessage:{}", messageId);
	}
	this.consumerProcess.processUnSubBack(messageId);
}
 
源代码4 项目: lannister   文件: MqttMessageFactory.java

public static MqttUnsubAckMessage unsuback(int messageId) {
	MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.UNSUBACK, false, MqttQoS.AT_MOST_ONCE, false,
			2);
	MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(messageId);

	return new MqttUnsubAckMessage(fixedHeader, variableHeader);
}
 

public static MqttUnsubAckMessage unsubAckMessage(int messageId) {
	return (MqttUnsubAckMessage) MqttMessageFactory.newMessage(
			new MqttFixedHeader(MqttMessageType.UNSUBACK, false, MqttQoS.AT_MOST_ONCE, false, 0),
			MqttMessageIdVariableHeader.from(messageId), null);
}
 
源代码6 项目: iot-mqtt   文件: MessageUtil.java

public static MqttUnsubAckMessage getUnSubAckMessage(int messageId){
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.UNSUBACK,false,MqttQoS.AT_MOST_ONCE,false,0);
    MqttMessageIdVariableHeader idVariableHeader = MqttMessageIdVariableHeader.from(messageId);
    return new MqttUnsubAckMessage(fixedHeader,idVariableHeader);
}
 

void handleUnsubscribe(MqttUnsubscribeMessage message) throws Exception {
   session.getSubscriptionManager().removeSubscriptions(message.payload().topics());
   MqttFixedHeader header = new MqttFixedHeader(MqttMessageType.UNSUBACK, false, MqttQoS.AT_MOST_ONCE, false, 0);
   MqttUnsubAckMessage m = new MqttUnsubAckMessage(header, message.variableHeader());
   sendToClient(m);
}