API for org.eclipse.paho.client.mqttv3

 org.eclipse.paho.client.mqttv3的包結構以下:java

org.eclipse.paho.client.mqttv3
Interfaces
    IMqttActionListener
    IMqttAsyncClient
    IMqttClient
    IMqttDeliveryToken
    MqttMessageListener
    IMqttToken
    MqttCallback
    MqttCallbackExtended
    MqttClientPersistence
    MqttPersistable
    MqttPingSender
Classes
    BufferedMessage
    DisconnectedBufferOptions
    MqttAsyncClient
    MqttClient
    MqttConnectOptions
    MqttDeliveryToken
    MqttMessage
    MqttToken
    MqttTopic
    TimerPingSender
Exceptions
    MqttException
    MqttPersistenceException
    MqttSecurityException
org.eclipse.paho.client.mqttv3.internal
Interfaces
    DestinationProvider
    IDisconnectedBufferCallback
    NetworkModule
Classes
    ClientComms
    ClientDefaults
    ClientState
    CommsCallback
    CommsReceiver
    CommsSender
    CommsTokenStore
    ConnectActionListener
    DisconnectedMessageBuffer
ExceptionHelper
    FileLock
    LocalNetworkModule
    MessageCatalog
    MqttPersistentData
    ResourceBundleCatalog
    SSLNetworkModule
    TCPNetworkModule
    Token
org.eclipse.paho.client.mqttv3.internal.security
Classes
    SimpleBase64Encoder
    SSLSocketFactoryFactory
org.eclipse.paho.client.mqttv3.internal.websocket
Classes
    Base64
    WebSocketFrame
    WebSocketHandshake
    WebSocketNetworkModule
    WebSocketReceiver
    WebSocketSecureNetworkModule
Exceptions
    HandshakeFailedException
org.eclipse.paho.client.mqttv3.internal.wire
Classes
    CountingInputStream
    MqttAck
    MqttConnack
    MqttConnect
    MqttDisconnect
    MqttInputStream
    MqttOutputStream
    MqttPersistableWireMessage
    MqttPingReq
    MqttPingResp
    MqttPubAck
    MqttPubComp
    MqttPublish
    MqttPubRec
    MqttPubRel
    MqttReceivedMessage
    MqttSuback
    MqttSubscribe
    MqttUnsubAck
    MqttUnsubscribe
    MqttWireMessage
    MultiByteArrayInputStream
    MultiByteInteger
org.eclipse.paho.client.mqttv3.logging
Interfaces
    Logger
Classes
    JSR47Logger
    LoggerFactory
    SimpleLogFormatter
org.eclipse.paho.client.mqttv3.persist
Classes
    MemoryPersistence
    MqttDefaultFilePersistence
org.eclipse.paho.client.mqttv3.util
Classes
    Debug
    Strings

摘要翻譯以下:web

 

==== Packages ==========
 org.eclipse.paho.client.mqttv3
====================
[Interfaces]
IMqttActionListener
    當異步操做完成時,將會通知該接口的實現者。監聽器在MqttToken上註冊,令牌與鏈接或發佈等操做相關聯。
    當與MqttAsyncClient上的令牌一塊兒使用時,偵聽器將在MQTT客戶端的線程上被回調。 若是操做成功或失敗,監聽器將被通知。
    監聽器快速返回控制很是重要,不然MQTT客戶端的操做將會中止。
    void onSuccess(IMqttToken asyncActionToken)
    void onFailure(IMqttToken asyncActionToken, java.lang.Throwable exception)
IMqttAsyncClient implements IMqttAsyncClient
    使應用程序可以使用非阻塞方法與MQTT服務器進行通訊。使用非阻塞客戶端容許應用程序使用阻塞和非阻塞樣式的混合。
IMqttClient
    使用阻塞客戶端只容許應用程序使用一種樣式。 阻塞客戶端提供了與早期版本的MQTT客戶端的兼容性。
IMqttDeliveryToken extends IMqttToken
    IMqttToken的子類,跟蹤消息的傳遞。
    與IMqttToken交付令牌的實例不一樣,能夠在鏈接和客戶端從新啓動時使用。 這樣能夠在發送失敗後跟蹤消息。
IMqttMessageListener
    消息到達時會通知此接口的實現者。
IMqttToken
    提供跟蹤異步任務完成的機制。
MqttCallback
    當發生與客戶端相關的異步事件時,使應用程序獲得通知。實現此接口的類能夠在兩種類型的客戶端上註冊:
    IMqttClient.setCallback(MqttCallback)和IMqttAsyncClient.setCallback(MqttCallback)
    void 	connectionLost (java.lang.Throwable cause)         當與服務器的鏈接丟失時調用此方法。
    void	deliveryComplete ( IMqttDeliveryToken token)    在消息傳遞完成時調用,而且已收到全部確認。
    void	messageArrived (java.lang.String topic, MqttMessage message)    當消息從服務器到達時調用此方法。
MqttCallbackExtended extends MqttCallback
    擴展MqttCallback以容許新的回調,而不會中斷現有應用程序的API。 實現此接口的類能夠在兩種類型的客戶端上註冊:
    IMqttClient.setCallback(MqttCallback)和IMqttAsyncClient.setCallback(MqttCallback)
    void	connectComplete (boolean reconnect, java.lang.String serverURI)     當與服務器的鏈接成功完成時調用。
    繼承的方法   connectionLost , deliveryComplete , messageArrived
MqttClientPersistence
    表示一個持久性數據存儲,用於存儲出站和入站郵件,以便傳送到指定的QoS。 
    可以使用MqttClient.MqttClient(String, String, MqttClientPersistence)指定該接口的實現, MqttClient將使用該MqttClient來保持QoS 1 和 2 消息。
    若是定義的方法拋出MqttPersistenceException,那麼數據持久化的狀態應保持爲被調用方法以前的狀態。 
    例如,若是put(String, MqttPersistable)在任什麼時候候拋出異常,那麼數據將被假定爲不在持久存儲中。
    一樣,若是remove(String)拋出一個異常,那麼數據將被認爲仍然保存在持久性存儲中。
    持久性接口由記錄在診斷持續性故障時可能須要的任何異常或錯誤信息。
MqttPersistable
    表示一個對象,用於傳遞要在MqttClientPersistence接口上持久保存的數據。
    當數據經過接口傳遞時,標題和有效載荷是分開的,以免沒必要要的消息拷貝。
MqttPingSender
    表示每一個保持活動時間間隔用於向MQTT代理髮送ping數據包的對象。
    void	init ( ClientComms comms)   初始方法。
    void	schedule (long delayInMilliseconds)     安排下一個ping在必定的延遲。
    void	start ()    開始ping發送者。
    void	stop ()     中止ping發件人。
========= Classes ========
BufferedMessage
    一個BufferedMessage包含一個MqttWire消息和令牌,它容許當客戶端處於靜止狀態時緩衝消息和令牌
DisconnectedBufferOptions
    保存用於管理離線(或斷開)緩衝消息行爲的選項集
MqttAsyncClient 
    輕量級客戶端,使用容許在後臺運行操做的非阻塞方法與MQTT服務器交互。
    默認狀況下,使用MqttDefaultFilePersistence將消息存儲到文件中。 若是將持久性設置爲null,則消息將存儲在內存中。
MqttClient implements IMqttClient
    輕量級客戶端,使用阻塞操做完成的方法與MQTT服務器交互。
MqttConnectOptions
    保存一組控制客戶端鏈接到服務器的選項。
    static boolean	CLEAN_SESSION_DEFAULT   若是沒有指定默認清理會話設置
    static int	CONNECTION_TIMEOUT_DEFAULT  若是沒有指定默認的鏈接超時時間(以秒爲單位)
    static int	KEEP_ALIVE_INTERVAL_DEFAULT 若是未指定,則以秒爲單位的默認保持活動時間間隔
    static int	MAX_INFLIGHT_DEFAULT    若是沒有指定,則默認爲最大航程
    static int	MQTT_VERSION_3_1
    static int	MQTT_VERSION_3_1_1
    static int	MQTT_VERSION_DEFAULT    首先默認的MqttVersion是3.1.1 ,若是失敗,則返回到3.1
MqttDeliveryToken extends MqttToken implements IMqttDeliveryToken
    提供跟蹤消息傳遞進度的機制。用於以非阻塞方式(在後臺運行)跟蹤消息的發送進度。
MqttMessage
    MQTT消息包含應用程序有效負載和選項,指定如何傳遞消息。消息包含表示爲byte []的「payload」(消息體)。
MqttToken implements IMqttToken
    提供跟蹤異步操做完成的機制。實現ImqttToken接口的令牌從全部非阻塞方法返回,發佈除外。
MqttTopic      表示主題目標,用於發佈/訂閱消息傳遞。
TimerPingSender implements MqttPingSender
    默認ping發送者執行
    這個類實現了IMqttPingSender pinger接口,容許應用程序在每一個活動時間間隔IMqttPingSender服務器發送ping數據包。
==== Exceptions ====
MqttExceptionn extends Exception
MqttPersistenceException extends MqttException
MqttSecurityException extends MqttException
=========================
  org.eclipse.paho.client.mqttv3.internal 
=========================
[ Interfaces ]
DestinationProvider
    這個接口能夠做爲MqttClient和MqttMIDPClient的一個通用類型,因此它們能夠傳遞給ClientComms而不須要客戶端類須要知道另外一個。
    具體而言,這容許MIDP客戶端在沒有非MIDP MqttClient / MqttConnectOptions類的狀況下工做。
    MqttTopic	getTopic (java.lang.String topic)
IDisconnectedBufferCallback
    void	publishBufferedMessage ( BufferedMessage bufferedMessage)
NetworkModule
    java.io.InputStream	getInputStream ()
    java.io.OutputStream	getOutputStream ()
    java.lang.String	getServerURI ()
    void  start ()
    void  stop ()
======== Classes ========
ClientComms
    處理與服務器的客戶端通訊。 發送和接收MQTT V3消息。
ClientDefaults
    public static final int MAX_MSG_SIZE = 1024 * 1024 * 256; // 256 MB
ClientState
    客戶端的核心,它保存待處理和正在進行的消息的狀態信息。 已經被接受發送的消息在被遞送的同時在幾個對象之間移動。 
    1)當客戶端沒有運行時,消息被存儲在一個實現了MqttClientPersistent接口的持久性存儲中。
    默認是MqttDefaultFilePersistence,它能夠跨越故障和系統從新啓動安全地存儲消息。
    若是沒有指定持久性,則返回到MemoryPersistence,這將在Mqtt客戶端實例化時維護消息。
    2)當客戶端或特定的ClientState被實例化時,將消息從持久性存儲中讀取到:
    - outboundqos2哈希表,若是QoS 2 PUBLISH或PUBREL
    - outboundqos1哈希表,若是QoS 1 PUBLISH(參見restoreState)
    3)On Connect,複製消息以messageid順序將出站哈希表添加到pendingMessages或pendingFlows向量中。
    - 初始消息發佈進入pendingmessages緩衝區。 - PUBREL進入待處理緩衝區(參見restoreInflightMessages)
    4)發送程序線程從待處理流和待處理消息緩衝區中讀取消息。 該消息將從pendingbuffer中刪除,但保留在出站*哈希表。
    哈希表是將所有未完成消息存儲在內存中的地方。 (持久性僅在啓動時使用)
    5)接收器線程 - 接收有線消息: - 若是QoS 1則從持久性中移除,outboundqos1 - 若是QoS 2 PUBREC發送PUBREL。
    使用PUBREL更新outboundqos2條目並更新持久性。
    - 若是QoS 2 PUBCOMP從持久性和outboundqos2中移除注意:因爲客戶端的多線程特性,對這個類的任何修改都考慮到併發性相當重要。
    例如,只要流量/消息放在線路上,接收線程就能夠接收確認並在發送方完成處理以前處理響應。 
    例如鏈接可能被髮送,在鏈接通知發送以前收到的conack已經被處理!
CommsCallback implements Runnable
    Receiver和外部API之間的橋樑。 此類由Receiver調用,而後將以通訊爲中心的MQTT消息對象轉換爲由外部API理解的對象。
CommsReceiver implements Runnable
    接收來自服務器的MQTT數據包。
CommsSender implements Runnable
CommsTokenStore
    提供基於「令牌」的系統來存儲和跟蹤跨多個線程的操做。發送消息時,令牌與消息相關聯,並使用saveToken(MqttToken, MqttWireMessage)方法保存。
    任何對該狀態感興趣的,均可以調用令牌上的一個等待方法,或者在操做上使用異步監聽器回調方法。
    另外一個線程上的CommsReceiver類從網絡讀取響應。 它使用響應來查找相關令牌,而後能夠通知它。
    注:Ping,鏈接和斷開鏈接沒有惟一的消息ID,由於每種類型的只有一個未決的請求被容許未完成
ConnectActionListener implements IMqttActionListener
    這個類處理AsyncClient到一個可用URL的鏈接。這些URL在建立客戶端時做爲單例提供,或做爲鏈接選項中的列表提供。
    這個類使用本身的onSuccess和onFailure回調優先於用戶提供的回調。嘗試鏈接到列表中的每一個URL,直到鏈接嘗試成功或嘗試了全部URL
    若是鏈接成功,則會通知用戶令牌,並調用用戶onSuccess回調。
    若是鏈接失敗,則嘗試列表中的另外一個URL,不然將通知用戶令牌,並調用用戶onFailure回調
    void	connect ()  開始鏈接處理
    void	onFailure ( IMqttToken token, java.lang.Throwable exception) 鏈接失敗,請嘗試列表中的下一個URI。
    void	onSuccess ( IMqttToken token)   若是鏈接成功,則調用用戶onSuccess回調
    void	setMqttCallbackExtended ( MqttCallbackExtended mqttCallbackExtended)    設置MqttCallbackExtened回調接收connectComplete回調
DisconnectedMessageBuffer implements Runnable
ExceptionHelper 
    工具類可幫助建立正確類型的例外。
FileLock
LocalNetworkModule implements NetworkModule
    特殊的comms類,容許MQTT客戶機在與MQTT服務器運行在同一JRE實例中時,使用非TCP /優化機制與MQTT服務器交談。
    這個類檢查是否存在優化的通訊協議類,即提供優化的通訊機制的類。 若是不可用,則使用優化機制進行鏈接的請求將被拒絕。 
    實現這一點的惟一已知的服務器是微型經紀人: - 一個與許多IBM產品一塊兒提供的MQTT服務器。
public abstract class MessageCatalog
    private static MessageCatalog INSTANCE = null;
    人類可讀的錯誤信息目錄。
MqttPersistentData implements MqttPersistable
ResourceBundleCatalog extends MessageCatalog
SSLNetworkModule extends TCPNetworkModule
    用於經過SSL鏈接的網絡模塊。
TCPNetworkModule implements NetworkModule
     一個經過TCP鏈接的網絡模塊。
Token

==============================
org.eclipse.paho.client.mqttv3.internal.security
==============================
[ Classes ]
SimpleBase64Encoder
    private static final String PWDCHARS_STRING = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	private static final char[] PWDCHARS_ARRAY = PWDCHARS_STRING.toCharArray();
    public static String encode(byte[] bytes)
    public static byte[] decode(String string)
    private final static String to64(long input, int size)
    private final static long from64(byte[] encoded, int idx, int size)
SSLSocketFactoryFactory
    一個SSLSocketFactoryFactory提供了一個套接字工廠和一個服務器套接字工廠,而後能夠用來建立SSL客戶端套接字或SSL服務器套接字。
    SSLSocketFactoryFactory使用IBM SSL屬性進行配置,即格式爲「com.ibm.ssl.propertyName」的屬性,例如「com.ibm.ssl.keyStore」。
    該類支持多種配置,每種配置都使用名稱或配置ID進行標識。 使用「null」的配置ID做爲默認配置。 當爲給定配置建立套接字工廠時,首先會選擇該配置的屬性。 
    若是在那裏沒有定義屬性,那麼在默認配置中查找該屬性。 最後,若是尚未找到屬性元素,則檢查相應的系統屬性,即javax.net.ssl.keyStore。 
    若是系統屬性沒有設置,那麼使用系統的默認值(若是可用)或引起異常。SSLSocketFacotryFactory能夠在任什麼時候候從新配置。 從新配置不會影響現有套接字工廠。
    全部的屬性共享相同的密鑰空間; 即配置ID不是屬性鍵的一部分。應按如下順序調用方法:
    isSupportedOnJVM() :檢查此類是否在運行時平臺上受支持。 並不是全部運行時支持SSL / TLS。
    SSLSocketFactoryFactory() :構造函數。 客戶端(在同一個JVM中)可能共享一個SSLSocketFactoryFactory,或者每一個都有一個。
    initialize(properties,configID) :用配置所需的SSL屬性初始化此對象。 這可能會被調用屢次,每次須要配置一次。它可能會被再次調用來更改特定配置所需的SSL屬性。
    getEnabledCipherSuites(configID) :稍後在套接字上設置啓用的密碼套件[見下文]。
    對於MQTT服務器:
    getKeyStore(configID) :或者,要檢查是否沒有密鑰庫,那麼全部啓用的密碼套件都是匿名的。
    createServerSocketFactory(configID) :建立一個SSLServerSocketFactory。
    getClientAuthentication(configID) :稍後在SSLServerSocket(自身從SSLServerSocketFactory建立)上設置是否須要客戶端身份驗證。
    對於MQTT客戶端:createSocketFactory(configID) :建立一個SSLSocketFactory。

================================
org.eclipse.paho.client.mqttv3.internal.websocket
================================
[ Classes ]
Base64
	private static final Base64 instance = new Base64();
	private static final Base64Encoder encoder = instance.new Base64Encoder();
    public static String encode (String s)
    public static String encodeBytes (byte[] b)
    public class Base64Encoder extends AbstractPreferences
WebSocketFrame  公共類
WebSocketHandshake  公共類。Helper類執行WebSocket握手。
WebSocketNetworkModule extends TCPNetworkModule
WebSocketReceiver implements Runnable
WebSocketSecureNetworkModule extends SSLNetworkModule
[ Exceptions ]
HandshakeFailedException extends Exception
	{ private static final long serialVersionUID = 1L; }
==============================
org.eclipse.paho.client.mqttv3.internal.wire
==============================
[ Classes ]
CountingInputStream extends InputStream
    計數從中讀取的字節的輸入流。
   	private InputStream in;
	private int counter;
    public CountingInputStream(InputStream in)
    public int read() throws IOException
    public int getCounter() {		return counter;	}
    public void resetCounter() {		counter = 0;	}
MqttAck extends MqttWireMessage
    全部確認消息的抽象超類。
   	public MqttAck(byte type) {	super(type);	}
	protected byte getMessageInfo() {		return 0;	}
MqttConnack extends MqttAck
    MQTT CONNACK的在線表示。
    public static final String KEY = "Con";
    private int returnCode;
    private boolean sessionPresent;
MqttConnect extends MqttWireMessage
	private String clientId;
	private boolean cleanSession;
	private MqttMessage willMessage;
	private String userName;
	private char[] password;
	private int keepAliveInterval;
	private String willDestination;
	private int MqttVersion;
MqttDisconnect extends MqttWireMessage
MqttInputStream extends InputStream
    一個MqttInputStream讓應用程序讀取MqttWireMessage實例。
    private static final String CLASS_NAME = MqttInputStream.class.getName();
	private static final Logger log = LoggerFactory.getLogger(LoggerFactory.MQTT_CLIENT_MSG_CAT, CLASS_NAME);
	private ClientState clientState = null;
	private DataInputStream in;
MqttOutputStream extends OutputStream
    一個MqttOutputStream讓應用程序編寫MqttWireMessage實例。
    private static final String CLASS_NAME = MqttOutputStream.class.getName();
	private static final Logger log = LoggerFactory.getLogger(LoggerFactory.MQTT_CLIENT_MSG_CAT, CLASS_NAME);
	private ClientState clientState = null;
	private BufferedOutputStream out;
MqttPersistableWireMessage extends MqttWireMessage	implements MqttPersistable
MqttPingReq extends MqttWireMessage
MqttPingResp extends MqttAck
MqttPubAck extends MqttAck
MqttPubComp extends MqttAck
MqttPublish extends MqttPersistableWireMessage
MqttPubRec extends MqttAck
MqttPubRel extends MqttPersistableWireMessage
MqttReceivedMessage extends MqttMessage
MqttSuback extends MqttAck
MqttSubscribe extends MqttWireMessage
MqttUnsubAck extends MqttAck
MqttUnsubscribe extends MqttWireMessage
public abstract class MqttWireMessage
MultiByteArrayInputStream extends InputStream
	private byte[] bytesA;
	private int offsetA;
	private int lengthA;
	private byte[] bytesB;
	private int offsetB;
	private int lengthB;	
	private int pos = 0;	
	public MultiByteArrayInputStream(byte[] bytesA, int offsetA, int lengthA, byte[] bytesB, int offsetB, int lengthB){ }
    public int read() throws IOException{ }
MultiByteInteger
    表示由MQTT V3規範定義的多字節整數(MBI)。
    private long value;
	private int length;
    public MultiByteInteger(long value)
    public MultiByteInteger(long value, int length)
    public int getEncodedLength()
    public long getValue()

========================
org.eclipse.paho.client.mqttv3.logging
========================
[ Interfaces ] 
Logger
[ Classes ]
JSR47Logger implements Logger
    使用java.uti.logging的記錄器接口的實現使用Java內置日誌記錄工具的記錄器 - java.util.logging。
    提供了一個示例java.util.logging屬性文件 - jsr47min.properties,演示瞭如何使用基於內存的跟蹤工具運行,該工具以最低的性能開銷運行。
    當記錄/跟蹤記錄被寫入與MemoryHandler觸發器級別匹配或在MemoryHandler上調用push方法時,能夠轉儲內存緩衝區。
    Debug提供的方法能夠很容易地轉儲內存緩衝區以及其餘有用的調試信息。
LoggerFactory
    返回記錄器以供MQTT客戶端使用的工廠。 默認的日誌和跟蹤工具使用Java在日誌工具中的構建:
    - java.util.logging。 對於不可用的系統或須要替代日誌框架的系統,可使用setLogger(String)來替換日誌工具,該日誌工具須要實現Logger接口。
SimpleLogFormatter extends Formatter
    以可讀形式打印單行日誌記錄。

========================
org.eclipse.paho.client.mqttv3.persist
========================
[ Classes ]
MemoryPersistence implements MqttClientPersistence
    使用內存的持久性在客戶端或設備不須要可靠性從新啓動內存的狀況下,可使用該內存持久性。
    在須要可靠性的狀況下,例如當clean session設置爲false時,應使用非易失性形式的持久性。
MqttDefaultFilePersistence implements MqttClientPersistence
    提供基於文件的持久性的MqttClientPersistence接口的實現。 當建立Persistence對象時指定一個目錄。
    當持久性被打開時(見open(String, String) ),在這個客戶端ID和鏈接鍵的基礎下建立一個子目錄。
    這容許一個持久性基目錄被多個客戶共享。 
    子目錄的名稱是經過將客戶端ID和鏈接鍵與'/','\\',':'或''的任何實例鏈接而建立的。

======================
org.eclipse.paho.client.mqttv3.util
======================
[ Classes ]
Debug
    用於幫助調試Paho MQTT客戶端問題的實用程序一旦初始化對dumpClientDebug的調用,將強制將任何內存跟蹤與相關客戶端和系統狀態一塊兒加載到主日誌設施。
    轉儲進行時,不會執行客戶端寬鎖。 這意味着客戶端狀態的集合可能不一致,由於客戶端在轉儲過程當中仍可能正在處理工做。
Strings
    字符串助手
========= END ===========
相關文章
相關標籤/搜索