lip.paho.client.mqttv3(翻译)

更新时间:2023-05-23 05:29:43 阅读: 评论:0

本⽂为转载⽂章,感谢蓝⾊世纪的翻译,并附上转载地址:
官⽅⽂档传送门:
正⽂
包结构:
Interfaces
IMqttActionListener
IMqttAsyncClient
IMqttClient
IMqttDeliveryToken
MqttMessageListener
IMqttToken
MqttCallback
MqttCallbackExtended
MqttClientPersistence
MqttPersistable
MqttPingSender
Class
BufferedMessage
DisconnectedBufferOptions
MqttAsyncClient
MqttClient
MqttConnectOptions
MqttDeliveryToken
MqttMessage
MqttToken
MqttTopic
TimerPingSender
Exceptions
MqttException
MqttPersistenceException
MqttSecurityException
2020高考数学卷子
Interfaces
DestinationProvider
IDisconnectedBufferCallback
NetworkModule
Class
ClientComms
ClientDefaults
ClientState
CommsCallback
CommsReceiver
CommsSender
CommsTokenStore
ConnectActionListener
DisconnectedMessageBuffer
DisconnectedMessageBuffer
ExceptionHelper
FileLock
LocalNetworkModule
MessageCatalog
MqttPersistentData
ResourceBundleCatalog
SSLNetworkModule
TCPNetworkModule
Token
SimpleBa64Encoder
SSLSocketFactoryFactory
Ba64
WebSocketFrame
WebSocketHandshake
WebSocketNetworkModule
WebSocketReceiver
WebSocketSecureNetworkModule
Exceptions
HandshakeFailedException
CountingInputStream
MqttAck
MqttConnack
MqttConnect
MqttDisconnect
MqttInputStream
MqttOutputStream
MqttPersistableWireMessage
MqttPingReq
MqttPingResp
MqttPubAck
MqttPubComp
MqttPublish
MqttPubRec
MqttPubRel
MqttReceivedMessage
英语新闻网MqttSuback
MqttSubscribe
MqttUnsubAck
MqttUnsubscribe
MqttWireMessage
MultiByteArrayInputStream
MultiByteInteger
Interfaces
Logger
Class
JSR47Logger
LoggerFactory
SimpleLogFormatter
SimpleLogFormatter
Class
MemoryPersistence
MqttDefaultFilePersistence
Class
Debug
Strings
摘要翻译:
==== Packages ==========
====================
[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.tCallback(MqttCallback)和IMqttAsyncClient.tCallback(MqttCallback)
void  connectionLost (java.lang.Throwable cau)        当与服务器的连接丢失时调⽤此⽅法。
void deliveryComplete ( IMqttDeliveryToken token)    在消息传递完成时调⽤,并且已收到所有确认。
void messageArrived (java.lang.String topic, MqttMessage message)    当消息从服务器到达时调⽤此⽅法。
MqttCallbackExtended extends MqttCallback
扩展MqttCallback以允许新的回调,⽽不会中断现有应⽤程序的API。实现此接⼝的类可以在两种类型的客户端上注册:
IMqttClient.tCallback(MqttCallback)和IMqttAsyncClient.tCallback(MqttCallback)
struggle什么意思
void connectComplete (boolean reconnect, java.lang.String rverURI)    当与服务器的连接成功完成时调⽤。
继承的⽅法  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 delayInMilliconds)    安排下⼀个ping在⼀定的延迟。
void start ()    开始ping发送者。
void stop ()    停⽌ping发件⼈。
========= Class ========
BufferedMessage
⼀个BufferedMessage包含⼀个MqttWire消息和令牌,它允许当客户端处于静⽌状态时缓冲消息和令牌
重庆英语翻译⼀个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 ====
join inMqttExceptionn extends Exception
MqttPersistenceException extends MqttException
MqttSecurityException extends MqttException
=========================
=========================
[ 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 ()
wittervoid  stop ()
======== Class ========
ClientCommswell done
处理与服务器的客户端通信。发送和接收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)
pixi4)发送程序线程从待处理流和待处理消息缓冲区中读取消息。该消息将从pendingbuffer中删除,但保留在出站*哈希表。
哈希表是将全部未完成消息存储在内存中的地⽅。(持久性仅在启动时使⽤)
5)接收器线程 - 接收有线消息: - 如果QoS 1则从持久性中移除,outboundqos1 - 如果QoS 2 PUBREC发送PUBREL。
使⽤PUBREL更新outboundqos2条⽬并更新持久性。
使⽤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 tMqttCallbackExtended ( 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
==============================
==============================
[ Class ]
SimpleBa64Encoder
private static final String PWDCHARS_STRING = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
private static final char[] PWDCHARS_ARRAY = CharArray();
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作为默认配置。当为给定配置创建套接字⼯⼚时,⾸先会选择该配置的属性。如果在那⾥没有定义属性,那么在默认配置中查找该属性。最后,如果还没有找到属性元素,则检查相应的系统属性,即ssl.keyStore。
如果系统属性没有设置,那么使⽤系统的默认值(如果可⽤)或引发异常。SSLSocketFacotryFactory可以在任何时候重新配置。重新配置不会影响现有套接字所有的属性共享相同的密钥空间; 即配置ID不是属性键的⼀部分。应按以下顺序调⽤⽅法:
isSupportedOnJVM():检查此类是否在运⾏时平台上受⽀持。并⾮所有运⾏时⽀持SSL / TLS。
SSLSocketFactoryFactory():构造函数。客户端(在同⼀个JVM中)可能共享⼀个SSLSocketFactoryFactory,或者每个都有⼀个。
initialize(properties,configID):⽤配置所需的SSL属性初始化此对象。这可能会被调⽤多次,每次需要配置⼀次。它可能会被再次调⽤来更改特定配置所需    getEnabledCipherSuites(configID):稍后在套接字上设置启⽤的密码套件[见下⽂]。
对于MQTT服务器:
getKeyStore(configID):或者,要检查是否没有密钥库,那么所有启⽤的密码套件都是匿名的。

本文发布于:2023-05-23 05:29:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/741221.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   客户端   连接   配置   服务器
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图