04-24 00:51:37885: W/Systemerr(329): at orgjivesoftwaresmackXMPPConnectionsendPacket(XMPPConnectionjava:488)
04-24 00:51:37885: W/Systemerr(329): at orgjivesoftwaresmackNonSASLAuthenticationauthenticate(NonSASLAuthenticationjava:69)
04-24 00:51:37895: W/Systemerr(329): at orgjivesoftwaresmackSASLAuthenticationauthenticate(SASLAuthenticationjava:353)
04-24 00:51:37895: W/Systemerr(329): at orgjivesoftwaresmackXMPPConnectionlogin(XMPPConnectionjava:230)
04-24 00:51:37895: W/Systemerr(329): at orgjivesoftwaresmackConnectionlogin(Connectionjava:353)
04-24 00:51:37895: W/Systemerr(329): at comwxsmodelUserlogin(Userjava:200)
04-24 00:51:37895: W/Systemerr(329): at comwechatprojectactivityLoginAcitivity$4$1run(LoginAcitivityjava:78)
04-24 00:51:37905: W/Systemerr(329): at javalangThreadrun(Threadjava:1096)QQ微信这些都用的自己的协议,而且不会公开。
对于小一点的公司想要实现实时聊天,一开始从XMPP做起是不错的选择。因为它是一个公开的标准,又有很多开源的实现,比如你提到的Openfire, aSmack和XMPPFramework,可以花费较少的开发量,就可以搭建出一套还算好用的实时聊天方案。
起步之后,你会想要添加更多的功能,XMPP有很多扩展,很多需求都能满足。一般来说,要做的产品都是服务器、客户端都由自己掌控,不需要和其他的厂商的聊天服务器/客户端互联互通,所以之后可以慢慢在XMPP上加入自己的扩展,甚至是一些删改(因为XMPP里面不少机制是为了适应不同公司的组件)。于是渐渐的,最后使用的协议可能已经和标准的XMPP不一样了,成了自己的协议。
这样从XMPP上演进出来的协议,虽然具体实现和XMPP可能相差不少,但是基本思想和原理又与XMPP一致。相比自己从头设计出一套全新的协议,基于这样一套经过无数项目考验过的协议,显然容易得多,风险也要小得多。开源的 IM 聊天通常是通过以下步骤实现的:
1 选择合适的协议:IM 聊天需要使用一种协议来处理通信。XMPP(Extensible Messaging and Presence Protocol)是一种开放标准的协议,提供了消息交换和在线状态管理的框架。这个协议被广泛使用,因为它支持很多客户端和服务器。
2 选择适合的服务器:IM 聊天需要一个服务器来处理消息传递和用户身份验证等 *** 作。常用的开源服务器包括 Openfire、ejabberd、Prosody 等。
3 开发客户端:用户需要使用客户端来连接到服务器,发送和接收消息。基于XMPP协议的开源客户端包括 Pidgin、Spark、Gajim、Conversejs 等。
4 集成其他功能:IM 聊天通常也需要集成其他功能,如文件传输、群组聊天、语音和视频通话等。这些功能可以通过使用相应的库和插件来实现。
5 测试和部署:在开发阶段完成后,需要对整个系统进行测试,以确保所有功能都可以正常工作。然后将服务器和客户端部署到实际环境中,以提供给真正的用户使用。
总之,实现开源 IM 聊天需要选择适合的协议和服务器,开发客户端和集成其他功能,最后进行测试和部署。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)