xmpp 相关

xmpp 使用范例代码
http://blog.csdn.net/ainibaifenbai/article/details/6863767

http://www.cnblogs.com/charley_yang/category/277938.html

也可以参考:
http://www.cnblogs.com/clunyes/archive/2013/04/10/3012524.html


openfier 服务器配置
http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html


微信是腾讯采用自己开发的协议做的,其他市面上很多产品大都是采用XMPP协议,包括米聊在内之前也是这样子。
 采用XMPP协议,服务端可以采用OpenFire搭建,客户端有个开源的叫asmack的东西,google下可以找到。
 如果人手少,时间紧,建议采用XMPP,很快就可以出来东西。
 
如果各方面都充足,还是直接采用tcp来做吧,客户端与服务端维持一个tcp长连接,通过定时发心跳包来保持,这个就需要有服务端高手,要考虑到高并发性等等。这样做的

方式就比较灵活了,数据都是通过tcp来发送、接受,可以自己制定各种协议。
 
如果是个人开发者,给个网址你去看看www.parse.com,提供免费的push服务,完全也可以实现类似即时通信的要求,缺点是服务器是别人的,可能有数据量限制。

 

Smack是一个开源,易于使用的XMPP(jabber)客户端类库。   Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发。 优点:编程简单。 缺

点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户.   smack是一个用 java 写的XMPP客户端代码库, 是 spark 的核心.

编辑本段smack的优点  1:Smack是一个简单的,功能强大的类库。给用户发送信息只需三行代码便可完成   XMPPConnection connection = new XMPPConnection

(”jabber.org“);   connection.login(”mtucker”, “password”);   connection.createChat(”[email protected]“).sendMessage(”Howdy!”);   

2:不会强迫你向其他类库那样,在信息包层面进行编码。它提供了更加智能化的类比如Chat和Groups,能使你的工作更富效率。   3:不需要你熟悉XMPP XML格式,甚至是

XML格式。   4:易于实现机-机对话。   5:Apace License下的开源软件。你可以把它用于你的商业或非商业应用程序。

 

androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与openfire是不同的。Androidpn服务器包含两个部分,一

个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻

量级的HTTP服务器,负责接收用户的Web请求。
 
最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,

Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。
这个解决方案的最大优势就是简单,我们不需要象C2DM那样依赖操作系统版本,也不会担心某一天Google服务器不可用。利用XMPP协议我们还可以进一步的对协议进行扩展,

实现更为完善的功能。
 
采用这个方案,我们目前只能发送文字消息,不过对于推送来说一般足够了,因为我们不能指望通过推送得到所有的数据,一般情况下,利用推送只是告诉手机端服务器发生

了某些改变,当客户端收到通知以后,应该主动到服务器获取最新的数据,这样才是推送服务的完整实现。

 

 

xmpp配置端口说明:

接口     端口           类型     描述
所有的地址     5222         客户端到服务器     客户端使用标准端口连接到服务器,连接可能没有加密,您可以更新安全设置 为这个端口
所有的地址     5223         客户端到服务器     客户端使用旧的SSL方法连接到服务器的端口。旧的SSL方法不是一个XMPP标准方法,
                                                在不久将不被支持,您可以更新安全设置 为这个端口
所有的地址     9090         管理控制台     端口使用不安全的管理控制台访问.
所有的地址     9091         管理控制台     端口使用安全的管理控制台访问.
所有的地址     7777         文件传送代理服务器     代理服务使用的端口允许在XMPP网络上的两个实体使用文件传送
所有的地址     7070         HTTP绑定     使用不安全的HTTP客户端连接端口
所有的地址     7443         HTTP绑定     使用安全的HTTP客户端连接端口
所有的地址     10000 - 20000         实时媒体代理服务器     代理服务使用的端口允许在XMPP网络上两个实体之间进行Jingle连接.
所有的地址     3478 & 3479         STUN服务器     端口用于确保实体之间在NAT下的连接.
所有的地址     5229         Flash Cross Domain     Service that allows Flash clients connect to other hostnames and ports.

 

你可能感兴趣的:(xmpp 相关)