java客户端还能制定更多的通讯细节
// 连接前清空会话信息 ,若设为false,MQTT服务器将持久化客户端会话的主体订阅和ACK位置,默认为true mqtt.setCleanSession(CLEAN_START); // 设置心跳时间 // ,定义客户端传来消息的最大时间间隔秒数,服务器可以据此判断与客户端的连接是否已经断开,从而避免TCP/IP超时的长时间等待 mqtt.setKeepAlive(KEEP_ALIVE); // 设置客户端id,用于设置客户端会话的ID。在setCleanSession(false);被调用时,MQTT服务器利用该ID获得相应的会话。 // 此ID应少于23个字符,默认根据本机地址、端口和时间自动生成 mqtt.setClientId(CLIENT_ID); //设置“遗嘱”消息的内容,默认是长度为零的消息 mqtt.setWillMessage("willMessage"); * //设置“遗嘱”消息的QoS,默认为QoS.ATMOSTONCE * mqtt.setWillQos(QoS.AT_LEAST_ONCE); * //若想要在发布“遗嘱”消息时拥有retain选项,则为true mqtt.setWillRetain(true); * //设置“遗嘱”消息的话题,若客户端与服务器之间的连接意外中断,服务器将发布客户端的“遗嘱”消息 * mqtt.setWillTopic("willTopic"); */ // ==失败重连接设置说明 // 设置重新连接的次数 // ,客户端已经连接到服务器,但因某种原因连接断开时的最大重试次数,超出该次数客户端将返回错误。-1意为无重试上限,默认为-1 mqtt.setReconnectAttemptsMax(RECONNECTION_ATTEMPT_MAX); // 设置重连的间隔时间 ,首次重连接间隔毫秒数,默认为10ms mqtt.setReconnectDelay(RECONNECTION_DELAY); // 客户端首次连接到服务器时,连接的最大重试次数,超出该次数客户端将返回错误。-1意为无重试上限,默认为-1 // mqtt.setConnectAttemptsMax(10L);MQTT提供的pub/sub确实比redis的pub/sub机制强大些。