万事都不能从零开始,XMPP规范就象webServece规范一样.我们最后选用一个库来加速开发.
所以我们选择使用Smack因为它容易使用,设计合理,还记得我们的经典jive吗,它也是他们开发
的,应该还是比较不错的. 注意是apache的licence,也就是可以应用到你的商业程序中.
下载地址:
使用简单,你不需要精通xmpp协议(这加快我们入门,从例子开始我们跟容易理解),创建一个xmpp
连接,并向一个用户发送信息,只需要三行代码:
XMPPConnection connection = new
XMPPConnection("jabber.org"
);
connection.login("mtucker"
, "password"
);
connection.createChat("jsmith@jivesoftware.com"
).sendMessage("Howdy!"
);
因为是tcp协议,首先必须创建一个网络连接:
XMPPConnection 就是用来创建和xmpp服务器的连接的类,如果需要ssl就使用SSLXMPPConnection.
// 创建连接.
XMPPConnection conn1 = new
XMPPConnection("jabber.org"
);
// 指定端口
XMPPConnection conn2 = new
XMPPConnection("jabber.org"
, 5222);
// 创建ssl连接.
XMPPConnection connection = new
SSLXMPPConnection("jabber.org"
);
一旦你创建了连接,你需要使用用户名和密码来登陆,你可以使用
XMPPConnection.login(String username, String password) 方法.一旦你完成登陆了,你可以通过
创建新的Chat或者是GroupChat对象来和其它人聊天.
名册让你能够跟踪其它在线的用户,用户可以被组织成为组,例如好友,同事,并且你可以发现谁
在线,谁不在线.
你可以使用 XMPPConnection.getRoster() 方法来取得好友名单,得到roster类.roster类允许你查找名册
实体,比如他们属于那个组,和当前的状态.
没一个从客户端发送到xmpp服务器的包都是xml格式的文本.org.jivesoftware.smack.packet 保护了封装
三种xmpp级别包:message,presence,IQ.Chat类和GroupChat类提供了高级别的类管理包自动的生成和发送,
但是你也可以手动创建它们.下面例子演示了改变你的在线情况,告诉其它人你不在线"外出捕鱼"去了.
//用presence.Type.UNAVILABLE作为参数创建一个presence描述你不在线.
Presence presence = new Presence(Presence.Type.UNAVAILABLE);
presence.setStatus("Gone fishing"
);
// 发送该包.
con.sendPacket(presence);
Smack 提供了两种方式来读取包:
PacketListener
,和 PacketCollector
.
它们都使用PacketFilter实例来决定那些包需要处理.一个PacketListener使用事件风格的编程,packet collector
提供轮循和阻塞的操作.
因此,packet listener用来处理随即发送来的包,packet collector用来等待指定的包.
Packet collectors and listeners使用XMPPConnection 对象来创建实例.
分享到:
相关推荐
android的XMPP客户端
类似于xmpp协议的服务器与客户端代码。具体自己看
Smack是一个开源的、易于使用的XMPP客户端Java类库,提供了一套可扩展的API。
Psi是为经验丰富的用户设计的跨平台功能强大的XMPP客户端。它使用经典的开发模型,其发行版很少见。 Psi +是Psi XMPP客户端的开发分支。借助滚动发布开发模型,用户可以很快地获得新功能和错误修复。
pandion是支持XMPP的客户端软件,是非常好用的软件资源
xmpp客户端:psi-0.14-win-setup.exe
xmpp客户端源代码
c#简单实现xmpp客户端,服务器openfire,可以登录及调试xmpp协议
xmpp客户端开发的开源库,很稳定。
xmpp客户端协议实现源代码
JAVA实现XMPP客户端和服务器 成型的软件
黑莓XMPP客户端实现参例 包含源代码 请多多关照
Habber - IOS XMPP 客户端教程 源码 教程在blog.csdn.net/zesicus
Psi是为经验丰富的用户设计的跨平台功能强大的XMPP客户端。它使用经典的开发模型,其发行版非常罕见。 Psi +是Psi XMPP客户端的开发分支。借助滚动发布开发模型,用户可以很快地获得新功能和错误修复。
Android版本xmpp客户端Beem的完整源代码-this is application source code for android xmpp client
Psi –基于Qt的XMPP客户端 网站: : 资料来源: : 执照 该程序根据GNU通用公共许可证授权。 有关更多信息,请参见文件。 描述 Psi是为经验丰富的用户设计的功能强大的XMPP客户端。 它具有高度的可移植性,可以在...
jackline, 在OCaml中,简约的安全XMPP客户端 Jackline一个简单的安全XMPP客户端 这是未发布的软件。feedback反馈欢迎 !你可以阅读更多关于 jackline ( 2017 )的信息。Jackline使用几个干净的slate库( ocaml,ocam
客户端 Go 中的 XMPP 客户端。
Jackline 使用 OCaml 开发的 XMPP 客户端。支持的特性:single XMPP accountOTR (built-in and enabled by default)strict TLS certificate verificationplain text (no HTML!)XEP-0184 (Message Delivery Receipts)...