接口XMPPConnection
- 所有已知的实现类: AbstractXMPPConnection,XMPPBOSHConnection,XMPPTCPConnection
公共接口XMPPConnection
XMPPConnection接口提供用于连接到XMPP服务器的接口,并实现由不同类型的连接(例如XMPPTCPConnection
或XMPPBOSHConnection
)使用的共享方法 。要创建与XMPP服务器的连接,此API的简单用法可能如下所示:
//创建与igniterealtime.org XMPP服务器的连接。
XMPPTCPConnection con = new XMPPTCPConnection(“igniterealtime.org”);
//连接到服务器
con.connect();
//大多数服务器要求您在执行其他任务之前登录。
con.login(“jsmith”,“mypass”);
//与John Doe开始新的对话并向他发送消息。
ChatManager chatManager = ChatManager.getInstanceFor(con);
chatManager.addIncomingListener(new IncomingChatMessageListener(){
public void newIncomingMessage(EntityBareJid from,Message message,Chat chat){
//打印出我们返回标准的任何消息。
System.out.println(“收到的消息:”+消息);
}
});
聊天聊天= chatManager.chatWith(“jdoe@igniterealtime.org”);
chat.send( “你好!”);
//断开与服务器的连接
con.disconnect();
1 // Create a connection to the igniterealtime.org XMPP server.
2 XMPPTCPConnection con = new XMPPTCPConnection("igniterealtime.org");
3 // Connect to the server
4 con.connect();
5 // Most servers require you to login before performing other tasks.
6 con.login("jsmith", "mypass");
7 // Start a new conversation with John Doe and send him a message.
8 ChatManager chatManager = ChatManager.getInstanceFor(con);
9 chatManager.addIncomingListener(new IncomingChatMessageListener() {
10 public void newIncomingMessage(EntityBareJid from, Message message, Chat chat) {
11 // Print out any messages we get back to standard out.
12 System.out.println("Received message: " + message);
13 }
14 });
15 Chat chat = chatManager.chatWith("jdoe@igniterealtime.org");
16 chat.send("Howdy!");
17 // Disconnect from the server
18 con.disconnect();
需要注意的是XMPPConnection接口并没有故意申报操纵的连接状态,例如任何方法connect()
,disconnect()
。您应该使用最具体的连接类型,例如XMPPTCPConnection
声明的类型,并在不需要操作连接状态时使用XMPPConnection接口。
XMPPConnections可以在连接之间重用。这意味着可以连接,断开连接然后再连接。XMPPConnection的监听器将保留在各个连接中。
嵌套类摘要
- 嵌套类
修饰符和类型 | 界面和描述 |
|
|
方法摘要
- 所有方法实例方法抽象方法不推荐使用的方法
修饰符和类型 | 方法和描述 |
|
使用此连接注册异步节侦听器。 |
|
向此连接添加连接侦听器,该连接将在连接关闭或失败时收到通知。 |
|
添加一个只调用一次并与与给定节过滤器匹配的传入节同步的回调。 |
|
已过时。 使用addStanzaInterceptor(org.jivesoftware.smack.StanzaListener, org.jivesoftware.smack.filter.StanzaFilter)替代 |
|
已过时。 使用addStanzaSendingListener(org.jivesoftware.smack.StanzaListener, org.jivesoftware.smack.filter.StanzaFilter)替代 |
|
使用此连接注册节拦截器。 |
|
使用此连接注册节听众。 |
|
使用此连接注册同步节监听器。 |
|
使用给定的节收集器配置创建新的节收集器。 |
|
为此连接创建新的节收集器。 |
|
创建一个新的节收集器,收集回复IQ的IQ响应 |
|
为此连接创建新的节收集器。 |
|
获取此XMPPConnection实例的连接计数器。 |
|
获取服务器的给定流功能的功能节扩展,或者 |
|
获取当前活动的FromMode。 |
|
返回运行XMPP服务器的服务器的主机名。 |
|
返回收到最后一节时的时间戳(以毫秒为单位)。 |
|
返回此连接的XMPP服务器的端口号。 |
|
返回请求此XMPPConnection实例的回复超时的当前值(以毫秒为单位)。 |
|
返回此连接的流ID,这是服务器在打开XMPP流时设置的值。 |
|
返回登录到连接的用户的完整XMPP地址,如果尚未登录,则返回 null。 |
|
返回XMPP服务器提供并用于此连接的服务的XMPP域。 |
|
如果服务器支持给定的流功能,则返回true。 |
|
如果当前以匿名方式验证,则返回true。 |
|
如果当前通过成功调用login方法进行身份验证,则返回true。 |
|
如果当前连接到XMPP服务器,则返回true。 |
|
如果与服务器的连接已成功协商加密,则返回true。 |
|
如果正在压缩网络流量,则返回true。 |
|
使用此连接注册IQ请求处理程序。 |
|
从此连接中删除已接收节的异步节侦听器。 |
|
从此连接中删除连接侦听器。 |
|
已过时。 用户removeStanzaInterceptor(org.jivesoftware.smack.StanzaListener)而不是 |
|
已过时。 使用removeStanzaSendingListener(org.jivesoftware.smack.StanzaListener)替代 |
|
删除此连接的节收集器。 |
|
删除节拦截器。 |
|
删除用于从此连接发送节的节侦听器。 |
|
从此连接中删除已接收节的节监听器。 |
|
异步发送节,使用给定的回复过滤器等待一个响应节。 |
|
异步发送节,使用给定的回复过滤器等待一个响应节。 |
|
发送IQ请求并等待响应。 |
|
异步发送IQ请求。 |
|
异步发送IQ请求。 |
|
已过时。 使用sendIqRequestAsync(IQ)来代替。 |
|
已过时。 使用sendIqRequestAsync(IQ)来代替。 |
|
已过时。 使用sendIqRequestAsync(IQ, long)来代替。 |
|
发送Nonza。 |
|
将指定的节发送到服务器。 |
|
已过时。 使用sendAsync(Stanza, StanzaFilter)来代替。 |
|
已过时。 使用sendAsync(Stanza, StanzaFilter)来代替。 |
|
已过时。 使用sendAsync(Stanza, StanzaFilter, long)来代替。 |
|
为此连接实例设置FromMode。 |
|
设置节回复超时(以毫秒为单位)。 |
|
方便的方法unregisterIQRequestHandler(String, String, org.jivesoftware.smack.packet.IQ.Type)。 |
|
使用此连接取消注册IQ请求处理程序。 |
方法细节
getXMPPServiceDomain
org.jxmpp.jid.DomainBareJid getXMPPServiceDomain()
返回XMPP服务器提供并用于此连接的服务的XMPP域。在使用服务器进行身份验证后,返回的值可能不同。
- 返回: 此XMPP会话的XMPP域。
和getHost
String getHost()
返回运行XMPP服务器的服务器的主机名。这将是服务器的IP地址或可由DNS服务器解析的名称。
- 返回: 运行XMPP服务器的服务器的主机名,如果尚未连接,则为null。
的getPort
int getPort()
返回此连接的XMPP服务器的端口号。正常连接的默认端口是5222。
- 返回: XMPP服务器的端口号,如果尚未连接,则为0。
的getUser
org.jxmpp.jid.EntityFullJid getUser()
返回登录到连接的用户的完整XMPP地址,如果尚未登录,则返回 null。XMPP地址的格式为username @ server / resource。
- 返回: 登录用户的完整XMPP地址。
getStreamId
String getStreamId()
返回此连接的流ID,这是服务器在打开XMPP流时设置的值。如果未连接到服务器,则此值将为null。
- 返回: 从XMPP服务器返回的此连接的ID,如果未连接到服务器,则返回null。 也可以看看:
- RFC6120§4.7.3。ID
已连接
boolean isConnected()
如果当前连接到XMPP服务器,则返回true。
- 返回: 如果连接则为true。
isAuthenticated
boolean isAuthenticated()
如果当前通过成功调用login方法进行身份验证,则返回true。
- 返回: 如果已通过身份验证,
isAnonymous
boolean isAnonymous()
如果当前以匿名方式验证,则返回true。
- 返回: 如果匿名验证,则为true。
isSecureConnection
boolean isSecureConnection()
如果与服务器的连接已成功协商加密,则返回true。
- 返回: 如果与服务器的安全连接,则为true。
isUsingCompression
boolean isUsingCompression()
如果正在压缩网络流量,则返回true。使用流压缩时,网络流量可减少高达90%。因此,当使用慢速网络连接时,流压缩是理想的。但是,服务器需要使用更多的CPU时间来解压缩/压缩网络数据,因此在高负载下服务器性能可能会受到影响。
- 返回: 如果正在压缩网络流量,则为true。
sendStanza
void sendStanza(Stanza stanza) 抛出SmackException.NotConnectedException, InterruptedException
将指定的节发送到服务器。
- 参数:
stanza
- 要发送的节。- 抛出:
SmackException.NotConnectedException
- 如果未连接连接。InterruptedException
sendNonza
void sendNonza(Nonza nonza) 抛出SmackException.NotConnectedException, InterruptedException
发送Nonza。
此方法不适用于最终用户使用!它允许发送普通流元素,这不应由用户手动完成。这样做可能会导致连接不稳定或无法使用。某些Smack API使用此方法发送纯流元素。
- 参数:
nonza
- 要发送的Nonza。- 抛出:
SmackException.NotConnectedException
InterruptedException
addConnectionListener
void addConnectionListener(ConnectionListener connectionListener)
向此连接添加连接侦听器,该连接将在连接关闭或失败时收到通知。
- 参数:
connectionListener
- 连接侦听器。
removeConnectionListener
void removeConnectionListener(ConnectionListener connectionListener)
从此连接中删除连接侦听器。
- 参数:
connectionListener
- 连接侦听器。
sendIqRequestAndWaitForResponse
<我扩展了IQ >我 sendIqRequestAndWaitForResponse(IQ 请求) 抛出SmackException.NoResponseException, XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException
发送IQ请求并等待响应。
- 参数:
request
- IQ请求- 返回: 具有“结果”类型的IQ 抛出:
SmackException.NoResponseException
XMPPException.XMPPErrorException
SmackException.NotConnectedException
InterruptedException
- 以来: 4.3
createStanzaCollectorAndSend
StanzaCollector createStanzaCollectorAndSend(IQ 请求) 抛出SmackException.NotConnectedException, InterruptedException
创建一个新的节收集器,收集回复IQ的IQ响应
request
。也发送request
智商。收集器的节过滤器是一个 IQReplyFilter,保证'from'地址中的节id和JID具有预期值。- 参数:
request
- 过滤响应的IQ请求- 返回: 一个新的节收集器。 抛出:
SmackException.NotConnectedException
InterruptedException
createStanzaCollectorAndSend
StanzaCollector createStanzaCollectorAndSend(StanzaFilter stanzaFilter, Stanza stanza) 抛出SmackException.NotConnectedException, InterruptedException
为此连接创建新的节收集器。节过滤器确定收集器将累积哪些节。StanzaCollector比StanzaListener您需要等待特定结果时更适合使用。
- 参数:
stanzaFilter
- 要使用的节过滤器。stanza
- 收集器创建后立即发送的节- 返回: 一个新的节收集器。 抛出:
InterruptedException
SmackException.NotConnectedException
createStanzaCollector
StanzaCollector createStanzaCollector(StanzaFilter stanzaFilter)
为此连接创建新的节收集器。节过滤器确定收集器将累积哪些节。StanzaCollector比StanzaListener 您需要等待特定结果时更适合使用。
注意:如果您在使用此方法后立即发送Stanza,请考虑使用 createStanzaCollectorAndSend(StanzaFilter, Stanza)。否则,请确保在每种情况下取消StanzaCollector,例如,即使抛出异常,否则您可能会泄漏StanzaCollector。
- 参数:
stanzaFilter
- 要使用的节过滤器。- 返回: 一个新的节收集器。
createStanzaCollector
StanzaCollector createStanzaCollector(StanzaCollector.Configuration 配置)
使用给定的节收集器配置创建新的节收集器。
请确保在不再需要时取消收集器。另见 createStanzaCollector(StanzaFilter)。
- 参数:
configuration
- 节收集器配置。- 返回: 一个新的节收集器。 以来: 4.1
removeStanzaCollector
void removeStanzaCollector(StanzaCollector collector)
删除此连接的节收集器。
- 参数:
collector
- 为此连接创建的节收集器。
addSyncStanzaListener
void addSyncStanzaListener(StanzaListener stanzaListener, StanzaFilter stanzaFilter)
使用此连接注册同步节监听器。只有在收到传入的节时才会调用节监听器。节属过滤器确定将哪些节传递给侦听器。如果使用不同的过滤器再次添加相同的节监听器,则仅使用新过滤器。
重要提示:此节的侦听器将在处理所有传入节的同一个线程中调用。如果它不执行等待响应的任何XMPP活动,则仅使用此类节过滤器。考虑addAsyncStanzaListener(StanzaListener, StanzaFilter)在可能的情况下使用,即调用顺序不必与到达节的顺序相同。如果到达节的顺序,请考虑StanzaCollector尽可能使用。
- 参数:
stanzaListener
- 节听众通知新收到的节。stanzaFilter
- 要使用的节过滤器。- 以来: 4.1 也可以看看:
- addStanzaInterceptor(StanzaListener, StanzaFilter)
removeSyncStanzaListener
boolean removeSyncStanzaListener(StanzaListener stanzaListener)
从此连接中删除已接收节的节监听器。
- 参数:
stanzaListener
- 要删除的节听众。- 返回: 如果删除了节侦听器,则为true 以来: 4.1
addAsyncStanzaListener
void addAsyncStanzaListener(StanzaListener stanzaListener, StanzaFilter stanzaFilter)
使用此连接注册异步节侦听器。只有在收到传入的节时才会调用节监听器。节属过滤器确定将哪些节传递给侦听器。如果使用不同的过滤器再次添加相同的节监听器,则仅使用新过滤器。
与addAsyncStanzaListener(StanzaListener, StanzaFilter)stanza监听器不同,使用此方法添加的侦听器将在其自己的线程中异步调用。如果节听众的顺序不一定取决于接收节的顺序,请使用此方法。
- 参数:
stanzaListener
- 节听众通知新收到的节。stanzaFilter
- 要使用的节过滤器。- 以来: 4.1 也可以看看:
- addStanzaInterceptor(StanzaListener, StanzaFilter)
removeAsyncStanzaListener
boolean removeAsyncStanzaListener(StanzaListener stanzaListener)
从此连接中删除已接收节的异步节侦听器。
- 参数:
stanzaListener
- 要删除的节听众。- 返回: 如果删除了节侦听器,则为true 以来: 4.1
addPacketSendingListener
@Deprecated void addPacketSendingListener(StanzaListener stanzaListener, StanzaFilter stanzaFilter)
使用此连接注册节听众。将通知侦听器此连接发送的每个节。节属过滤器确定将哪些节传递给侦听器。请注意,写入节的线程将用于调用侦听器。因此,每个节监听器应该快速完成所有操作或使用不同的线程进行处理。
- 参数:
stanzaListener
- 节听众通知发送的节。stanzaFilter
- 要使用的节过滤器。
addStanzaSendingListener
void addStanzaSendingListener(StanzaListener stanzaListener, StanzaFilter stanzaFilter)
使用此连接注册节听众。将通知侦听器此连接发送的每个节。节属过滤器确定将哪些节传递给侦听器。请注意,写入节的线程将用于调用侦听器。因此,每个节监听器应该快速完成所有操作或使用不同的线程进行处理。
- 参数:
stanzaListener
- 节听众通知发送的节。stanzaFilter
- 要使用的节过滤器。
removePacketSendingListener
@Deprecated void removePacketSendingListener(StanzaListener stanzaListener)
已过时。 使用removeStanzaSendingListener(org.jivesoftware.smack.StanzaListener)替代
删除用于从此连接发送节的节侦听器。
- 参数:
stanzaListener
- 要删除的节听众。
removeStanzaSendingListener
void removeStanzaSendingListener(StanzaListener stanzaListener)
删除用于从此连接发送节的节侦听器。
- 参数:
stanzaListener
- 要删除的节听众。
addPacketInterceptor
@Deprecated void addPacketInterceptor(StanzaListener stanzaInterceptor, StanzaFilter stanzaFilter)
使用此连接注册节拦截器。每次要通过此连接发送节时,都会调用拦截器。拦截器可以修改要发送的节。节过滤器确定将哪些节传递给拦截器。
注意:有关传入节的类似功能,请参阅addAsyncStanzaListener(StanzaListener, StanzaFilter)。
- 参数:
stanzaInterceptor
- 节消息拦截器通知要发送的节。stanzaFilter
- 要使用的节过滤器。
addStanzaInterceptor
void addStanzaInterceptor(StanzaListener stanzaInterceptor, StanzaFilter stanzaFilter)
使用此连接注册节拦截器。每次要通过此连接发送节时,都会调用拦截器。拦截器可以修改要发送的节。节过滤器确定将哪些节传递给拦截器。
注意:有关传入节的类似功能,请参阅addAsyncStanzaListener(StanzaListener, StanzaFilter)。
- 参数:
stanzaInterceptor
- 节消息拦截器通知要发送的节。stanzaFilter
- 要使用的节过滤器。
removePacketInterceptor
@Deprecated void removePacketInterceptor(StanzaListener stanzaInterceptor)
已过时。 用户removeStanzaInterceptor(org.jivesoftware.smack.StanzaListener)而不是
删除节拦截器。
- 参数:
stanzaInterceptor
- 要删除的节拦截器。
removeStanzaInterceptor
void removeStanzaInterceptor(StanzaListener stanzaInterceptor)
删除节拦截器。
- 参数:
stanzaInterceptor
- 要删除的节拦截器。
getReplyTimeout
long getReplyTimeout()
返回请求此XMPPConnection实例的回复超时的当前值(以毫秒为单位)。
- 返回: 回复超时(以毫秒为单位)
setReplyTimeout
void setReplyTimeout(long timeout)
设置节回复超时(以毫秒为单位)。在大多数情况下,SmackException.NoResponseException如果在超时期限内收到请求没有回复,Smack将抛出一个 。
- 参数:
timeout
- 以毫秒为单位的回复
getConnectionCounter
int getConnectionCounter()
获取此XMPPConnection实例的连接计数器。这些可以用作ID来标识连接,但要注意,如果您在计数器可以包装时创建超过2 *个Integer.MAX_VALUE实例,则ID可能不是唯一的 。
- 返回: 这个XMPPConnection的连接计数器
setFromMode
void setFromMode(XMPPConnection.FromMode fromMode)
为此连接实例设置FromMode。定义如何通过Smack填充传出节的'from'属性。
- 参数:
fromMode
-
getFromMode
XMPPConnection.FromMode getFromMode()
获取当前活动的FromMode。
- 返回: 目前活跃的 XMPPConnection.FromMode
getFeature
<F extends ExtensionElement > F getFeature(String element, String namespace)
获取服务器的给定流功能的功能节扩展,或者
null
服务器是否不支持该功能。- 类型参数:
F
- ExtensionElement功能类型。- 参数:
element
-namespace
-- 返回:
功能或节的节扩展
null
hasFeature
boolean hasFeature(String element, String namespace)
如果服务器支持给定的流功能,则返回true。
- 参数:
element
-namespace
-- 返回: 如果服务器支持流功能,则为true。
sendIqRequestAsync
SmackFuture < IQ,异常 > sendIqRequestAsync(IQ 请求)
异步发送IQ请求。将使用连接的默认回复超时。
- 参数:
request
- 要发送的IQ请求。- 返回: 一个SmackFuture的响应。
sendIqRequestAsync
SmackFuture < IQ,Exception > sendIqRequestAsync(IQ 请求, 长时间超时)
异步发送IQ请求。
- 参数:
request
- 要发送的IQ请求。timeout
- 以毫秒为单位的回复超时。- 返回: 一个SmackFuture的响应。
sendAsync
<S扩展Stanza > SmackFuture <S,例外 > sendAsync(S stanza, StanzaFilter replyFilter)
异步发送节,使用给定的回复过滤器等待一个响应节。将使用连接的默认回复超时。
- 参数:
stanza
- 要发送的节。replyFilter
- 用于响应节的过滤器。- 返回: 一个SmackFuture的响应。
sendAsync
<S扩展Stanza > SmackFuture <S,例外 > sendAsync(S stanza, StanzaFilter replyFilter, 长时间超时)
异步发送节,使用给定的回复过滤器等待一个响应节。
- 参数:
stanza
- 要发送的节。replyFilter
- 用于响应节的过滤器。timeout
- 以毫秒为单位的回复超时。- 返回: 一个SmackFuture的响应。
sendStanzaWithResponseCallback
@Deprecated void sendStanzaWithResponseCallback(Stanza stanza, StanzaFilter replyFilter, StanzaListener callback) 抛出SmackException.NotConnectedException, InterruptedException
已过时。 使用sendAsync(Stanza, StanzaFilter)来代替。
发送一个节并使用异步等待响应
replyFilter
。如果有响应,
callback
则会被调用。回调最多只会被调用一次,并且在连接默认回复超时结束后不会调用它。- 参数:
stanza
- 要发送的节(必填)replyFilter
- 用于确定响应节的过滤器(必需)callback
- 如果有响应,则调用回调(必需)- 抛出:
SmackException.NotConnectedException
InterruptedException
sendStanzaWithResponseCallback
@Deprecated void sendStanzaWithResponseCallback(Stanza stanza, StanzaFilter replyFilter, StanzaListener callback, ExceptionCallback exceptionCallback) 抛出SmackException.NotConnectedException, InterruptedException
已过时。 使用sendAsync(Stanza, StanzaFilter)来代替。
发送一个节并使用异步等待响应
replyFilter
。如果有响应,
callback
则会被调用。如果在连接默认回复超时后没有响应,则将exceptionCallback
使用a调用SmackException.NoResponseException。回调最多只能调用一次。- 参数:
stanza
- 要发送的节(必填)replyFilter
- 用于确定响应节的过滤器(必需)callback
- 如果有响应,则调用回调(必需)exceptionCallback
- 如果有异常,则调用回调(可选)- 抛出:
SmackException.NotConnectedException
InterruptedException
sendStanzaWithResponseCallback
@Deprecated void sendStanzaWithResponseCallback(Stanza stanza, StanzaFilter replyFilter, StanzaListener 回调, ExceptionCallback exceptionCallback, 长时间超时) 抛出SmackException.NotConnectedException, InterruptedException
已过时。 使用sendAsync(Stanza, StanzaFilter, long)来代替。
发送一个节并使用异步等待响应
replyFilter
。如果有响应,
callback
则会被调用。如果在timeout
毫秒之后没有响应,那么exceptionCallback
将使用a调用SmackException.NoResponseException。回调最多只能调用一次。- 参数:
stanza
- 要发送的节(必填)replyFilter
- 用于确定响应节的过滤器(必需)callback
- 如果有响应,则调用回调(必需)exceptionCallback
- 如果有异常,则调用回调(可选)timeout
- 等待响应的超时(以毫秒为单位)- 抛出:
SmackException.NotConnectedException
InterruptedException
sendIqWithResponseCallback
@Deprecated void sendIqWithResponseCallback(IQ iqRequest, StanzaListener 回调) 抛出SmackException.NotConnectedException, InterruptedException
已过时。 使用sendIqRequestAsync(IQ)来代替。
发送IQ节并在结果IQ
callback
结果时 调用IQ.Type.result。连接默认回复超时后,将不会调用回调。- 参数:
iqRequest
- 要发送的IQ节(必填)callback
- 如果有结果响应,则调用回调(必需)- 抛出:
SmackException.NotConnectedException
InterruptedException
sendIqWithResponseCallback
@Deprecated void sendIqWithResponseCallback(IQ iqRequest, StanzaListener 回调, ExceptionCallback exceptionCallback) 抛出SmackException.NotConnectedException, InterruptedException
已过时。 使用sendIqRequestAsync(IQ)来代替。
发送IQ节并在结果IQ
callback
结果时 调用IQ.Type.result。如果有错误响应exceptionCallback
将被调用,如果不为null,则收到的错误为XMPPException.XMPPErrorException。如果在连接默认回复超时后没有响应,则将exceptionCallback
使用a调用 SmackException.NoResponseException。- 参数:
iqRequest
- 要发送的IQ节(必填)callback
- 如果有结果响应,则调用回调(必需)exceptionCallback
- 如果存在Exception可选,则调用回调- 抛出:
SmackException.NotConnectedException
InterruptedException
sendIqWithResponseCallback
@Deprecated void sendIqWithResponseCallback(IQ iqRequest, StanzaListener 回调, ExceptionCallback exceptionCallback, 长时间超时) 抛出SmackException.NotConnectedException, InterruptedException
已过时。 使用sendIqRequestAsync(IQ, long)来代替。
发送IQ节并在结果IQ
callback
结果时 调用IQ.Type.result。如果有错误响应exceptionCallback
将被调用,如果不为null,则收到的错误为XMPPException.XMPPErrorException。如果之后没有响应timeout
,那么exceptionCallback
将使用a调用 SmackException.NoResponseException。- 参数:
iqRequest
- 要发送的IQ节(必填)callback
- 如果有结果响应,则调用回调(必需)exceptionCallback
- 如果存在Exception可选,则调用回调timeout
- 等待响应的超时(以毫秒为单位)- 抛出:
SmackException.NotConnectedException
InterruptedException
addOneTimeSyncCallback
void addOneTimeSyncCallback(StanzaListener 回调, StanzaFilter stanzaFilter)
添加一个只调用一次并与与给定节过滤器匹配的传入节同步的回调。
- 参数:
callback
- 一个节过滤器匹配节后调用的回调。stanzaFilter
- 匹配节的过滤器或null以匹配所有。
registerIQRequestHandler
IQRequestHandler registerIQRequestHandler(IQRequestHandler iqRequestHandler)
使用此连接注册IQ请求处理程序。
IQ请求处理程序处理传入的IQ请求,即“get”或“set”类型的传入IQ节,并返回结果。
- 参数:
iqRequestHandler
- 要注册的IQ请求处理程序。- 返回: 以前注册的IQ请求处理程序或null。
unregisterIQRequestHandler
IQRequestHandler unregisterIQRequestHandler(IQRequestHandler iqRequestHandler)
方便的方法unregisterIQRequestHandler(String, String, org.jivesoftware.smack.packet.IQ.Type)。
- 参数:
iqRequestHandler
-- 返回: 以前注册的IQ请求处理程序或null。
unregisterIQRequestHandler
IQRequestHandler unregisterIQRequestHandler(String element, String namespace, IQ.Type type)
使用此连接取消注册IQ请求处理程序。
- 参数:
element
- IQ请求处理程序负责的IQ元素。namespace
- IQ请求处理程序负责的IQ名称空间。type
- IQ请求处理程序负责的IQ类型。- 返回: 以前注册的IQ请求处理程序或null。
getLastStanzaReceived
long getLastStanzaReceived()
返回收到最后一节时的时间戳(以毫秒为单位)。
- 返回: 时间戳,以毫秒为单位