org.jivesoftware.smack.Connection类管理你和一个XMPP服务器的连接。默认的实现是org.jivesoftware.smack.XMPPConnection类。两个构造器主要被使用。首先,XMPPConnection(String)使用你向连接的服务器名字作为参数。所有默认的连接设备将会被使用:
-
一个DNS SRV查找将会被执行,来查找服务器的具体地址和端口(通常5222)。
-
可能的最大安全将会和服务器协商,包含TLS加密,但是如果有必要的话,连接将会返回较低的安全设置。
-
名字为”Smack“的XMPP资源将会被用于连接。
或者,你可以使用XMPPService(ConnectionConfiguration)构造器来指定高级的连接设置。一些这些设置包括:
-
手动指定服务器地址和端口,而不是使用一个DNS SRV查询。
-
启动连接压缩。
-
自定义安全设置,例如为了连接降低连接要求TLS加密。
-
指定一个自定义的连接资源名称例如”Work“或者”Home“。所有用户访问服务器的连接必须有一个唯一的资源名称。对于用户“jsmith@example.com”,资源的完整地址可能是“jsmith@example.com/Smack”。使用唯一的资源名称,用户能从多个位置一次登陆到服务器,或者使用多个设备。每个资源使用的存在属性值将会决定哪个指定的连接从简单地地址获取消息
(“jsmith@example.com”在我们的例子中)。
// Create the configuration for this new connection
ConnectionConfiguration config = new ConnectionConfiguration("jabber.org", 5222);
config.setCompressionEnabled(true);
config.setSASLAuthenticationEnabled(true);
Connection connection = new XMPPConnection(config);
// Connect to the server
connection.connect();
// Log into the server
connection.login("username", "password", "SomeResource");
....
// Disconnect from the server
connection.disconnect();
默认的,如果它突然的被中断了,Stack将会尝试重新连接。使用ConnectionConfiguration#setReconnectionAllowed(boolean)打开/关闭这个功能。重新连接管理器将会尝试立刻重连服务器,并且增加了尝试连接成功失败之间的延迟。当重连管理器等待下一次重新连接的时候,你想强制重新连接,你仅仅使用Connection#connect()方法,那么一个新的尝试将会被执行。如果手动尝试也失败了,然么重连管理器将会继续重新连接工作。
分享到:
相关推荐
Android 链接openfire的smack库
Big Data SMACK: A Guide to Apache Spark, Mesos, Akka, Cassandra, and Kafka by Raul Estrada, Isaac Ruiz English | ISBN: 1484221745 | 2016 | EPUB | 264 pages | 2.35 MB This book is about how to ...
Smack About Smack is an open source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. A pure Java library, it can be embedded into your ...
org.jivesoftware.smack-3.2.2.jar
SMACK既是模块化软件验证工具链,又是独立的软件验证程序。 它可以用来验证其输入程序中的断言。 在默认模式下,对声明进行验证,直到达到循环迭代和递归深度的给定界限为止; 它还包含对无边界验证的实验支持。 ...
Android使用smack连接ejabberd服务器,完成了连接、登录、创建新用户、收发消息的功能
它主要由用于构建 Android 版本的 Smack。 但是由于 aSmack 只是在 Smack 分支上更改了一些内容并添加了补丁,因此这些分支也可以在非 Android 环境中使用。分行掌握xep0198 上游的smack-aiv smack 来自 ,他也在...
jxmpp-core-0.5.0-alpha7 jxmpp-util-cache-0.5.0-alpha7 smack-android-4.1.6 smack-core-4.1.6 smack-extensions-4.1.6 smack-im-4.1.6 smack-sasl-provided-4.1.6 smack-tcp-4.1.6
这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前面我所发布的OpenFire和Smack的相关文章。今天所讲解的文章只是 :基于Smack3.0.4+ Openfire3.10.2...
smack用于android移动端的开发,可以结合openfire使用,进行im通信
将 Swing 应用程序框架 (JSP-296) 的实现与 SwingX Swing 扩展相结合,增加了一些趣味。
Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档
1)smack api,基于smack官方javadoc制作而成,格式chm,语言english; 2)smack documentation,内容包括Overview,Getting Started Guide等等,格式chm,语言为中文(感谢fhqdddddd的奉献,本文档基于...
m 关于 是用Java编写的开放源代码,高度... 此外,由于smack-core是根据Apache License 2.0授权的,因此该条件适用于使用Smack的每个项目。 可以使用Smack.getNoticeStream()方便地检索Smack的NOTICE文件的内容。 Sm
Smack和XMPP允许您在人类和非人类端点(M2M,IoT,…)之间以多种方式轻松交换数据,例如,即弃即发,发布-订阅。 会提供更多信息。 入门 首先看一下和。 中提供了有关如何在Java或Android项目中使用Smack的说明。 ...
搭建openfire后,用 smack api 连接服务的测试demo。运行官网范例,发现其实不易,smack4.1.4中缺少很多依赖于第3方的jar包。不断debug甚是痛苦,终于跑起来了。分享出来给只是想要个初体验的同学。
smack源码
Apress源代码 该存储库随附Raul Estrada和Isaac Ruiz的 (Apress,2016年)。 使用绿色按钮将文件下载为zip格式,或使用Git将存储库克隆到您的计算机上。 发行版 版本v1.0对应于已出版书籍中的代码,没有更正或更新...
Smack中文API文档
Smack帮助文档中文版:XMPP协议包括一个基本协议和许多可选扩充,像具有代表性的"JEP's".Smack 为核心XMPP协议提供了org.jivesoftware.smack包,为许多协议扩充提供了org.jivesoftware.smackx包.