接口XMPPConnection

  • 所有已知的实现类: AbstractXMPPConnection,XMPPBOSHConnection,XMPPTCPConnection


公共接口XMPPConnection

XMPPConnection接口提供用于连接到XMPP服务器的接口,并实现由不同类型的连接(例如XMPPTCPConnectionXMPPBOSHConnection)使用的共享方法 。要创建与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的监听器将保留在各个连接中。

嵌套类摘要

  • 嵌套类

修饰符和类型

界面和描述

static class 

XMPPConnection.FromMode 

方法摘要

  • 所有方法实例方法抽象方法不推荐使用的方法

修饰符和类型

方法和描述

void

addAsyncStanzaListener(StanzaListener stanzaListener, StanzaFilter

使用此连接注册异步节侦听器。

void

addConnectionListener(ConnectionListener

向此连接添加连接侦听器,该连接将在连接关闭或失败时收到通知。

void

addOneTimeSyncCallback(StanzaListener callback, StanzaFilter

添加一个只调用一次并与与给定节过滤器匹配的传入节同步的回调。

void

addPacketInterceptor(StanzaListener stanzaInterceptor, StanzaFilter

已过时。 

使用addStanzaInterceptor(org.jivesoftware.smack.StanzaListener, org.jivesoftware.smack.filter.StanzaFilter)替代


void

addPacketSendingListener(StanzaListener stanzaListener, StanzaFilter

已过时。 

使用addStanzaSendingListener(org.jivesoftware.smack.StanzaListener, org.jivesoftware.smack.filter.StanzaFilter)替代


void

addStanzaInterceptor(StanzaListener stanzaInterceptor, StanzaFilter

使用此连接注册节拦截器。

void

addStanzaSendingListener(StanzaListener stanzaListener, StanzaFilter

使用此连接注册节听众。

void

addSyncStanzaListener(StanzaListener stanzaListener, StanzaFilter

使用此连接注册同步节监听器。

StanzaCollector

createStanzaCollector(StanzaCollector.Configuration

使用给定的节收集器配置创建新的节收集器。

StanzaCollector

createStanzaCollector(StanzaFilter

为此连接创建新的节收集器。

StanzaCollector

createStanzaCollectorAndSend(IQ

创建一个新的节收集器,收集回复IQ的IQ响应request

StanzaCollector

createStanzaCollectorAndSend(StanzaFilter stanzaFilter, Stanza

为此连接创建新的节收集器。

int

getConnectionCounter()

获取此XMPPConnection实例的连接计数器。

<F extends ExtensionElement>
F

getFeature(String element, String

获取服务器的给定流功能的功能节扩展,或者null服务器是否不支持该功能。

XMPPConnection.FromMode

getFromMode()

获取当前活动的FromMode。

String

getHost()

返回运行XMPP服务器的服务器的主机名。

long

getLastStanzaReceived()

返回收到最后一节时的时间戳(以毫秒为单位)。

int

getPort()

返回此连接的XMPP服务器的端口号。

long

getReplyTimeout()

返回请求此XMPPConnection实例的回复超时的当前值(以毫秒为单位)。

String

getStreamId()

返回此连接的流ID,这是服务器在打开XMPP流时设置的值。

org.jxmpp.jid.EntityFullJid

getUser()

返回登录到连接的用户的完整XMPP地址,如果尚未登录,则返回 null。

org.jxmpp.jid.DomainBareJid

getXMPPServiceDomain()

返回XMPP服务器提供并用于此连接的服务的XMPP域。

boolean

hasFeature(String element, String

如果服务器支持给定的流功能,则返回true。

boolean

isAnonymous()

如果当前以匿名方式验证,则返回true。

boolean

isAuthenticated()

如果当前通过成功调用login方法进行身份验证,则返回true。

boolean

isConnected()

如果当前连接到XMPP服务器,则返回true。

boolean

isSecureConnection()

如果与服务器的连接已成功协商加密,则返回true。

boolean

isUsingCompression()

如果正在压缩网络流量,则返回true。

IQRequestHandler

registerIQRequestHandler(IQRequestHandler

使用此连接注册IQ请求处理程序。

boolean

removeAsyncStanzaListener(StanzaListener

从此连接中删除已接收节的异步节侦听器。

void

removeConnectionListener(ConnectionListener

从此连接中删除连接侦听器。

void

removePacketInterceptor(StanzaListener

已过时。 

用户removeStanzaInterceptor(org.jivesoftware.smack.StanzaListener)而不是


void

removePacketSendingListener(StanzaListener

已过时。 

使用removeStanzaSendingListener(org.jivesoftware.smack.StanzaListener)替代


void

removeStanzaCollector(StanzaCollector

删除此连接的节收集器。

void

removeStanzaInterceptor(StanzaListener

删除节拦截器。

void

removeStanzaSendingListener(StanzaListener

删除用于从此连接发送节的节侦听器。

boolean

removeSyncStanzaListener(StanzaListener

从此连接中删除已接收节的节监听器。

<S extends Stanza>
SmackFuture<S,Exception>

sendAsync(S stanza, StanzaFilter

异步发送节,使用给定的回复过滤器等待一个响应节。

<S extends Stanza>
SmackFuture<S,Exception>

sendAsync(S stanza, StanzaFilter

异步发送节,使用给定的回复过滤器等待一个响应节。

<I extends IQ>
I

sendIqRequestAndWaitForResponse(IQ

发送IQ请求并等待响应。

SmackFuture<IQ,Exception>

sendIqRequestAsync(IQ

异步发送IQ请求。

SmackFuture<IQ,Exception>

sendIqRequestAsync(IQ

异步发送IQ请求。

void

sendIqWithResponseCallback(IQ iqRequest, StanzaListener

已过时。 

使用sendIqRequestAsync(IQ)来代替。


void

sendIqWithResponseCallback(IQ iqRequest, StanzaListener callback, ExceptionCallback

已过时。 

使用sendIqRequestAsync(IQ)来代替。


void

sendIqWithResponseCallback(IQ iqRequest, StanzaListener callback, ExceptionCallback

已过时。 

使用sendIqRequestAsync(IQ, long)来代替。


void

sendNonza(Nonza

发送Nonza。

void

sendStanza(Stanza

将指定的节发送到服务器。

void

sendStanzaWithResponseCallback(Stanza stanza, StanzaFilter replyFilter, StanzaListener

已过时。 

使用sendAsync(Stanza, StanzaFilter)来代替。


void

sendStanzaWithResponseCallback(Stanza stanza, StanzaFilter replyFilter, StanzaListener callback,ExceptionCallback

已过时。 

使用sendAsync(Stanza, StanzaFilter)来代替。


void

sendStanzaWithResponseCallback(Stanza stanza, StanzaFilter replyFilter, StanzaListener callback,ExceptionCallback

已过时。 

使用sendAsync(Stanza, StanzaFilter, long)来代替。


void

setFromMode(XMPPConnection.FromMode

为此连接实例设置FromMode。

void

setReplyTimeout(long timeout)

设置节回复超时(以毫秒为单位)。

IQRequestHandler

unregisterIQRequestHandler(IQRequestHandler

方便的方法unregisterIQRequestHandler(String, String, org.jivesoftware.smack.packet.IQ.Type)

IQRequestHandler

unregisterIQRequestHandler(String element, String namespace, 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.NotConnectedExceptionInterruptedException
  • 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.NoResponseExceptionXMPPException.XMPPErrorExceptionSmackException.NotConnectedExceptionInterruptedException
  • 以来: 4.3
  • createStanzaCollectorAndSend

    StanzaCollector  createStanzaCollectorAndSend(IQ  请求)
                                          抛出SmackException.NotConnectedException,
                                                  InterruptedException

    创建一个新的节收集器,收集回复IQ的IQ响应request。也发送request智商。收集器的节过滤器是一个 IQReplyFilter,保证'from'地址中的节id和JID具有预期值。

  • 参数:
  • request - 过滤响应的IQ请求
  • 返回: 一个新的节收集器。 抛出:
  • SmackException.NotConnectedExceptionInterruptedException
  • createStanzaCollectorAndSend

    StanzaCollector  createStanzaCollectorAndSend(StanzaFilter  stanzaFilter,
                                                  Stanza  stanza)
                                          抛出SmackException.NotConnectedException,
                                                  InterruptedException

    为此连接创建新的节收集器。节过滤器确定收集器将累积哪些节。StanzaCollector比StanzaListener您需要等待特定结果时更适合使用。

  • 参数:
  • stanzaFilter - 要使用的节过滤器。
  • stanza - 收集器创建后立即发送的节
  • 返回: 一个新的节收集器。 抛出:
  • InterruptedExceptionSmackException.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)

    已过时。 使用addStanzaSendingListener(org.jivesoftware.smack.StanzaListener, org.jivesoftware.smack.filter.StanzaFilter)替代

    使用此连接注册节听众。将通知侦听器此连接发送的每个节。节属过滤器确定将哪些节传递给侦听器。请注意,写入节的线程将用于调用侦听器。因此,每个节监听器应该快速完成所有操作或使用不同的线程进行处理。

  • 参数:
  • stanzaListener - 节听众通知发送的节。
  • stanzaFilter - 要使用的节过滤器。
  • addStanzaSendingListener

    void  addStanzaSendingListener(StanzaListener  stanzaListener,
                                   StanzaFilter  stanzaFilter)

    使用此连接注册节听众。将通知侦听器此连接发送的每个节。节属过滤器确定将哪些节传递给侦听器。请注意,写入节的线程将用于调用侦听器。因此,每个节监听器应该快速完成所有操作或使用不同的线程进行处理。

  • 参数:
  • stanzaListener - 节听众通知发送的节。
  • stanzaFilter - 要使用的节过滤器。
  • removeStanzaSendingListener

    void  removeStanzaSendingListener(StanzaListener  stanzaListener)

    删除用于从此连接发送节的节侦听器。

  • 参数:
  • stanzaListener - 要删除的节听众。
  • addStanzaInterceptor

    void  addStanzaInterceptor(StanzaListener  stanzaInterceptor,
                               StanzaFilter  stanzaFilter)

    使用此连接注册节拦截器。每次要通过此连接发送节时,都会调用拦截器。拦截器可以修改要发送的节。节过滤器确定将哪些节传递给拦截器。

    注意:有关传入节的类似功能,请参阅addAsyncStanzaListener(StanzaListener, StanzaFilter)


  • 参数:
  • stanzaInterceptor - 节消息拦截器通知要发送的节。
  • stanzaFilter - 要使用的节过滤器。
  • 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服务器是否不支持该功能。

  • 类型参数:
  • FExtensionElement功能类型。
  • 参数:
  • 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.NotConnectedExceptionInterruptedException
  • 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.NotConnectedExceptionInterruptedException
  • 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.NotConnectedExceptionInterruptedException
  • sendIqWithResponseCallback

    @Deprecated 
    void  sendIqWithResponseCallback(IQ  iqRequest,
                                                 StanzaListener  回调)
                                         抛出SmackException.NotConnectedException,
                                                 InterruptedException

    已过时。 使用sendIqRequestAsync(IQ)来代替。

    发送IQ节并在结果IQ callback结果时 调用IQ.Type.result。连接默认回复超时后,将不会调用回调。

  • 参数:
  • iqRequest - 要发送的IQ节(必填)
  • callback - 如果有结果响应,则调用回调(必需)
  • 抛出:
  • SmackException.NotConnectedExceptionInterruptedException
  • 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.NotConnectedExceptionInterruptedException
  • 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.NotConnectedExceptionInterruptedException
  • 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(String  element,
                                                 String  namespace,
                                                 IQ.Type  type)

    使用此连接取消注册IQ请求处理程序。

  • 参数:
  • element - IQ请求处理程序负责的IQ元素。
  • namespace - IQ请求处理程序负责的IQ名称空间。
  • type - IQ请求处理程序负责的IQ类型。
  • 返回: 以前注册的IQ请求处理程序或null。
  • getLastStanzaReceived

    long  getLastStanzaReceived()

    返回收到最后一节时的时间戳(以毫秒为单位)。

  • 返回: 时间戳,以毫秒为单位