1. 程式人生 > >MQTT是一項訊息傳遞技術,安卓自建小範圍可用

MQTT是一項訊息傳遞技術,安卓自建小範圍可用

MQTT是一項訊息傳遞技術,由IBM再2001年釋出。

總結一下,機制就是使用一個代理伺服器message broker,
客戶端client連線上這個伺服器,然後告訴伺服器說,我可以接收哪些型別的訊息,
同時,client也可以釋出自己的訊息,這些訊息根據協議的內容,可以被其他client獲取。

只要手機客戶端,連上伺服器,然後就可以接收和釋出訊息了,不用自己寫socket什麼了,

低頻寬,低耗電量,程式碼量也少,很簡單吧。

package com.pig.test.mqtt;

import com.ibm.mqtt.MqttClient;
import com.ibm.mqtt.MqttException;
import com.ibm.mqtt.MqttSimpleCallback;

public class SubscribeClient {
private final static String CONNECTION_STRING = “tcp://192.168.1.60:1883”;
private final static boolean CLEAN_START = true;
private final static short KEEP_ALIVE = 30;//低耗網路,但是又需要及時獲取資料,心跳30s
private final static String CLIENT_ID = “client1”;
private final static String[] TOPICS = {
“Test/TestTopics/Topic1”,
“Test/TestTopics/Topic2”,
“Test/TestTopics/Topic3”,
“tokudu/client1”
};
private final static int[] QOS_VALUES = {0, 0, 2, 0};

//////////////////
private MqttClient mqttClient = null;

public SubscribeClient(String i){
try {
mqttClient = new MqttClient(CONNECTION_STRING);
SimpleCallbackHandler simpleCallbackHandler = new SimpleCallbackHandler();
mqttClient.registerSimpleHandler(simpleCallbackHandler);//註冊接收訊息方法
mqttClient.connect(CLIENT_ID+i, CLEAN_START, KEEP_ALIVE);
mqttClient.subscribe(TOPICS, QOS_VALUES);//訂閱接主題

/**
* 完成訂閱後,可以增加心跳,保持網路通暢,也可以釋出自己的訊息