前段时间看到园子里有朋友开发了QQ高仿版的程序,我也很是有兴趣,之前一直有个作即时聊天程序的梦,趁这段时间工做不是很忙,就开始动手来作这个事情。根据我以往积累下来的项目经验,实现QQ的基本功能,问题应该不大。固然,个人目标并非作一个QQ高仿版的玩具,而是但愿作成一个能可以真正使用的产品(固然是免费的),并持续维护下去。想为这个聊天工具取个名字,就抽取了“叽叽歪歪”中的“叽叽”(GG)做为暂时的名称吧。html
我想分红几个阶段来开发GG,每一个阶段一个版本,从简单到复杂,从玩具到产品。大致规划以下:服务器
1.GG V1.0框架
(1)登陆、好友列表。工具
(2)文字聊天、字体设置、表情、窗口震动、截图、手写板字体
(3)文件传送、文件夹传送spa
2.GG V2.0orm
(1)语音视频聊天视频
(2)网盘htm
(3)远程磁盘blog
目前,V2.0版本已经发布,语音视频聊天、网盘、远程磁盘等功能已经实现。
3.GG V3.0
(1)GG群
(2)远程协助
(3)视频会议
4.GG V4.0
(1)聊天记录
(2)离线消息
(3)离线文件
(4)增长持久化支持
5.GG V5.0 & more...
若是要彻底从头开发GG,其难度可想而知,因此,利用现有的成熟框架是必要的,咱们必须站在别人的肩膀上,才能作得更快更好。GG V1.0 所采用的框架和素材以下:
(1)通讯框架:ESFramework
(2)语音视频:OMCS
(3)皮肤框架:SkinForm
(4)截屏类库:ImageCapturerLib
(5)图片素材:90%以上来自QQ。
ESFramework和OMCS都是园子里zhuweisky的做品,已经至关成熟,很少说。SkinForm是我从网上找的一套相似QQ界面的皮肤框架(没有专门的项目网址),有些小bug,能将就用。ImageCapturerLib也是网上找的,并有源码,我把发现的一个bug已经修复了。因为是高仿QQ,因此,GG中用到的绝大多数图片都是从QQ里面拿过来的(商用也许会有版权问题)。
GG整个解决方案分为三个项目:服务端GG.Server(直接将ESFramework的demo的服务端搬了过来)、客户端GG、定义消息类型和协议的GG.Core。
至于GG V1.0是如何实现的,内部并非很难(最困难的事情都让上述框架给作了),你们能够下载源码本身研究,我就很少费口舌了。下面就截几张运行时的图片吧,跟QQ是否是很是像了?
1.登陆框
2.主窗体
3.聊天窗口
下载最新版本,请转到这里。
注意:若是要将GG部署到广域网,则能够在服务端的配置文件中设置监听的端口;而在客户端的配置文件中,则能够指定服务器的IP和Port。
GG最新进展总览连接:可在广域网部署运行的QQ高仿版 -- GG2013总览
你们有什么问题和建议,能够留言,也能够发送email到我邮箱:ggim2013@163.com。
若是有人有兴趣来参与GG后续版本的开发,那就更好了,尽管email给我。
若是你以为还不错,请粉我,顺便再顶一下啊,呵呵