可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码) 可在广域网部署运行的QQ高仿版 -- GG2013概要

  (前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来讲,真的是很抱歉。)GG的前面几个版本开发了一些比较高级的功能,像视频聊天、远程桌面、文件传送、远程磁盘等,可是,有一些基础且必需的功能一直未实现,好比注册、添加好友、加入群、群聊天等等。常常有朋友留言问这些功能要怎么作,GG3.0终于能够给出一个答案了。html

  先提醒一下,GG3.0中这些基础功能的实现方式是比较粗糙的,我尚未时间深刻考虑性能、缓存等问题(源码中我以“建议”的字样标注了须要优化的地方),后续版本,我会将它们一一优化。因为长时间未更新,火烧眉毛地先放个版本出来给你们参考。数据库

一.GG V3.0 新增功能展示 

(1)注册新账号。缓存

(2)添加好友(包括:通知对方、好友上下线通知)。服务器

(3)加入群(包括:通知其它群友、群友上下线通知)。函数

(4)群聊天。post

(5)之前版本的账号只能为数字(就像QQ同样),可是,3.0及之后版本,账号中能够包含字母。性能

      废话很少说,仍是先上图。测试

  注册:优化

          

  添加好友:url

      

  加入群:

     

  群聊天:

     

 

二.实现思路

  虽然提供了源代码,可是,我仍是想将主要的思路列一下,这样,你们理解起源码来,会节省更多的时间。

1.虚拟数据库

(1)为了部署测试更简单,GG没有采用真实的物理数据库,而是在内存中虚拟了一个数据库(即服务端的VirtualDB类),用于存储用户注册信息、好友关系、群信息等。

(2)GG内置了几个用户:10000、1000一、1000二、1000三、10004,它们的登陆密码都是"1"。

(3)GG内置的这几个用户之间都是好友关系。

(4)GG内置了两个群:G00一、G002。G001群包含全部内置测试用户,G002群包含10000和10001两个用户。

(5)上述的这些内置信息,在VirtualDB类的构造函数中设定。

2.服务端主要变动

(1)RegisterService:服务端发布了一个Remoting服务RegisterService,用于提供注册服务。因为注册以前,用户账号还不存在,因此,不能经过ESFramework来实现。

(2)FriendsManager:服务端增长了FriendsManager类,以提供好友关系信息。

(3)GroupManager:服务端增长了GroupManager类,以提供群/组的信息。

(4)BasicHandler:服务端修改了BasicHandler类的实现,以验证客户端登陆的用户账号密码。

(5)CustomizeHandler:服务端修改了CustomizeHandler的实现,使之能够处理来自客户端的各类请求消息(如加入群、加好友等请求)。

3.客户端主要变动

(1)增长RegisterForm、AddFriendForm、JoinGroupForm、GroupChatForm四个窗体分别用于注册、添加好友、加入群、群聊天。

(2)增长GlobalUserCache类,用于缓存全部的好友信息。

(3)客户端接收到的全部消息都是在MainFormPartial.cs文件中处理的,包括广播消息(如群聊)

(4)用户信息使用User类封装(位于GG.Core项目的Entity.cs文件中)。

 

三.GG V3.0 源码下载 

下载最新版本,请转到这里。 

 注意:若是要将GG部署到广域网,则能够在服务端的配置文件中设置监听的端口;而在客户端的配置文件中,则能够指定服务器的IP和Port。

 

关于GG的最新全貌介绍,我单独写了一篇文章,做为汇总,可参见 可在广域网部署运行的QQ高仿版 -- GG2013概要。 

欢迎和我探讨关于GG2013的一切,个人QQ:2027224508,多多交流!  

你们有什么问题和建议,能够留言,也能够发送email到我邮箱:ggim2013@163.com。 

若是你以为还不错,请粉我,顺便再顶一下啊,呵呵  

相关文章
相关标签/搜索