XMPPConnection变更为接口
当声明连接时,可以使用AbstractXMPPConnection或者是XMPPConnection的子类作为静态类型。
重新实现了SASL认证
对于自定义的SASL机制,或许要调整代码。
添加了IQ请求句柄API
包(Packet)监听器和包收集器不再能监听IQ请求,也即IQ的“get”和“set”类型。
XMPPConnection.addPacketListener方法被废弃了
改为用添加异步包监听器addAsyncPacketListener方法或添加同步包监听器addSyncPacketListener方法来代替它。
StringUtils工具类
StringUtils工具类添加到XmppStringUtils包(在jxmpp-core包中),方法名也有些变化,比如parseName变更为parseLocalpart。
消息监听器类的变化
消息监听器MessageListener类改名为ChatMessageListener,MessageListener类名现在是不通的接口。
连接配置类使用了Builder模式
连接配置ConnectionConfiguration类使用了Builder设计模式。
FormField.getType和Form.getType
FormField.getType和Form.getType都改成了枚举类型Enum。
废弃了包Packet接口
包Packet接口废弃了。使用新的Stanza类的getStanzaId方法来代替getPacketID方法。
Roster类的变化
使用Roster.instance获得一个实例,原先是XMPPConnection.getRoster方法获得的。
ConnectionListener.authenticated方法的变化
ConnectionListener.authenticated方法新增了一个布尔型参数resumed。
XMPPTCPConnection.addStanzaAcknowledgedListener方法取消了一个异常
XMPPTCPConnection.addStanzaAcknowledgedListener方法取消了StreamManagementNotEnabledException异常。
如果使用SASL扩展,要使用ConnectionConfiguration.Builder.allowEmptyOrNullUsernames
SmackConfiguration.DEBUG_ENABLED变更为SmackConfiguration.DEBUG