技术 - 企业通信 - E-mail技术频道
  首页 > 技术 > 企业通信 > 技术 > E-mail > 技术动态 > CIM2.1.0发布,即时通讯方案

CIM2.1.0发布,即时通讯方案

2016-07-18 16:13:20   作者:   来源:开源中国社区   评论:0  点击:4869


  CIM2.1.0发布了,基于apache mina的java即时通讯服务端。与android客户端完美结合,同时支持其他语言(ios,c,Action Script,.net等)客户端的即时通信。
  说明:
  此开源版本为基础功能版本,只有消息推送的基础功能!netty版本,和mina版本结构和功能完全一致,大家可以选择自己喜欢的或者合适的版本学习或者使用!
  前言:
  现在市面上有很多xmpp协议的即时通讯方案,openfire androidpn,等等。它们都是使用了apache mina开发,但是这些东西基本都需要二次改造开发。而且改动还很大,我也看过这些东西的源码,发现代码结构不太理想,耦合的情况太多,实在不好扩展。所谓XMPP协议。只不过是别人使用mina自定义了一个消息编码解码协议。通俗的讲就是,xml形式消息的编码与解码,我们完全没有必要在国外这套不成熟的openfire与xmpp上耗费过多的精力去研究,我们完全可以通过apache mina自定义自己的通讯协议,并可以为它使用自己的名字。我们不要盲目崇拜国外的有些东西,自己掌握原理,才是最重要的,各位切记~
  这套IM系统为我个人自主开发使用了apache mina,主要功能为服务端和客户端,客户端到客户端的即时通信,可以支持包括文字图片,语音等任何消息形式服务端使用的struts2+spring3和apache mina android端也使用的apache mina。这套IM系统结构还是非常清晰合理的,非常容易扩展和改造,下面是android版本的demo的目的是只是一个演示,可以参照它的代码,使用这套系统开发自己的东西,核心价值是一套高灵活性,相对标准化的即时通讯解决方案,即时聊天只是它的一种运用途径!
  服务端集群配置方案
  服务端修改
  1.多台服务器集群配置,首先需要重写SessionManager接口(参考com.farsunset.ichat.cim.session.Cluster Session Manager.java),用户登录时,将账号和服务器IP存入数据库中,这样就可以统计各台服务器接受的连接数量。2.客户端连接服务器时,服务端为客户端动态分配服务器IP,每次分配较为空闲的服务器IP3.服务端接受消息后通过接收者账号查询出对应的Iosession,和登录的服务器IP,然后将消息信息传往目标服务器处理发送
  更新日志
  1.修改消息断包时没有正确处理,导致消息接收不到的问题
  2.修改调用CIM Push Manager.stop(),在网络切换时会恢复连接的问题
  3.修改netty版客户端断开连接,服务端连接信息没有更新的问题
  4.netty版本使用4.1.0,mina版本使用最新的2.0.13

相关阅读:

  • 0

  • 0

  • 0

  • 0

  • 0

  • 0

  • 0

  • 0

分享到:           收藏

推荐阅读

专题