让我们一块来做IM吧_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 让我们一块来做IM吧

让我们一块来做IM吧

 2014/12/16 4:41:33  连城序  程序员俱乐部  我要评论(0)
  • 摘要:之前因为工作需要所以有过IM的相关调研,不过感觉当时做的东西,太不满意了。所以现在准备重新做一遍,顺便记录下整个记录过程。先描述一下环境。IM服务器C#语言编写,采用UDP协议,最大传输内容8K。消息的实现过程相对简单获取消息处理消息,如下图然后我们在业务逻辑里边将消息再发送给另一个客户端,那么消息服务器的业务逻辑就算完成了。Ok,或许你觉得这个太简单了,完全不像是消息服务器的逻辑,但是,消息服务器的本质就是这样,接收到消息,然后转发。但是消息多了之后,我们的业务逻辑中势必会进行各种各样的判断
  • 标签:我们

之前因为工作需要所以有过IM的相关调研,不过感觉当时做的东西,太不满意了。所以现在准备重新做一遍,顺便记录下整个记录过程。

  先描述一下环境。IM服务器C#语言编写,采用UDP协议,最大传输内容8K。消息的实现过程相对简单获取消息处理消息,如下图 然后我们在业务逻辑里边将消息再发送给另一个客户端,那么消息服务器的业务逻辑就算完成了。Ok,或许你觉得这个太简单了,完全不像是消息服务器的逻辑,但是,消息服务器的本质就是这样,接收到消息,然后转发。   但是消息多了之后,我们的业务逻辑中势必会进行各种各样的判断,用于确定消息分类型,然后区别对待,并且进行下一步处理。既然这样,为了方便,消息服务器中一般会引入一个概念,叫做消息路由主要是在获取到消息之后,判断消息类型,然后将不同类型的消息推送到具体的处理逻辑中去。到这一步,消息服务器图应该缓一缓了。如下图   其实这个时候,简单的框架已经搭建起来,我们已经做到不同消息的传达,比如说登陆,比如说发送消息,比如说获取自己的资料,都可以做的到。但是现在的消息机制是不完善的,并且过于依赖于网络,所以我们需要一种机制来记录,我们发送的消息。   消息的生命周期: 消息的生命周期,是在两个地方共同完成的,发送端发送消息,接收端接收消息,处理并发送回执,客户端接收回执,完成消息。      发送端周期,消息一旦被发送就开始了周期,在规定的时间内,接收到消息的回执则为消息被响应,否则为消息超时(消息超时后,则客户端不再响应该消息)。如下图      接收端周期,接收到消息之后,直至消息处理完成,则消息完成生命周期。     框架上应该已经没有什么东西可以阻挡我们前进了,剩下的基本上就是业务上的逻辑了。 登录、获取当前登录的人、转发消息。一个小型的IM系统已经做完。先上半成品效果图 此项目,会渐渐开源,未经允许不能商用,仅仅作为学习理解IM使用
发表评论
用户名: 匿名