【转】可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)

前段时间看到园子里有朋友开发了QQ高仿版的程序,我也非常有兴趣,以前一直有个做即时聊天程序的梦,趁这段时间工作不是很忙,就开始动手来做这个事情。根据我以往积累下来的项目经验,实现QQ的基本功能,问题应该不大。当然,我的目标并不是做一个QQ高仿版的玩具,而是希望做成一个能能够真正使用的产品(当然是免费的),并持续维护下去。想为这个聊天工具取个名字,就抽取了“叽叽歪歪”中的“叽叽”(GG)作为暂时的名称吧。

一.GG的功能规划

我想分成几个阶段来开发GG,每个阶段一个版本,从简单到复杂,从玩具到产品。大体规划如下:

1.GG V1.0

(1)登录、好友列表。

(2)文字聊天、字体设置、表情、窗口震动、截图、手写板

(3)文件传送、文件夹传送

2.GG V2.0

(1)语音视频聊天

(2)网盘

(3)远程磁盘

目前,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 V1.0 功能展现

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给我。

如果你觉得还不错,请粉我,顺便再顶一下啊,呵呵 

转自:http://www.cnblogs.com/justnow/p/3243187.html

转载于:https://www.cnblogs.com/oneLight/p/3758450.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
源码描述: 一、源码描述 GGQQ仿版,包括客户端和服务端,可在广域网部署使用,目前推出的最新版本为4.3。 GG 4.3版本增加的主要功能是:在视频聊天的过程中,随时可以启动录制,录制将把聊天双方的视频图像和双方的声音都录制下来生成一个标准的mp4文件,该mp4文件可用任意的影音播放器打开播放。 二、功能介绍 01、注册、登录、查找用户、添加好友、好友列表。 02、自拍头像。 03、文字聊天、字体设置、GIF动态表情、窗口震动、截图、手写板、登录状态(在线、离开、忙碌、勿打扰、隐身)、输入提醒) 04、群功能:创建群、加入群、退出群、群聊天 05、文件传送、文件夹传送(支持断点续传) 06、语音视频聊天 07、远程磁盘 08、远程协助 09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 15、最近联系人列表 16、系统设置:开机自动启动、麦克风设备索引、摄像头设备索引,叉掉主窗口时关闭程序还是隐藏窗口。 17、聊天记录:支持本地保存和服务器端保存两种方式。 18、好友分组:新增/删除分组,修改分组名称,改变好友的所属分组。 19、打开聊天窗口时,自动显示上次交谈的最后一句话。 20、输入提醒:像QQ一样,当对方正在输入消息时,我这边的聊天框可以看到对方“正在输入”的提示。 21、自动记录:GG2014会自动记录上次打开的主界面的位置、大小;最后一次打开的聊天窗口的大小;最后一次设定的字体的颜色、大小等。 22、主窗体靠边自动隐藏。 23、录制视频聊天。 三、注意事项 1.当前版本服务端默认配置为内存虚拟数据库版本,不需要安装数据库。 2、开发环境为Visual Studio 2010,无数据库,使用.net 2.0开发。 2.将GG2014.Server文件夹拷贝到服务器上,运行GG2014.Server.exe。 3.修改客户端配置文件GG2014.exe.config中ServerIP配置项的值为服务器的IP。 4.运行客户端,注册帐号登录试用。 5.内置测试帐号为 10000,10001,10002,10003,10004;密码都是 1。
GGQQ仿版,包括客户端和服务端,可在广域网部署使用,目前最新版本为3.4。我想写一个类似汇总的文章,通过这篇文章,大家可以了解到GG的全貌和最新进展,以及关于一些常见问题的解答也汇总在这里。   言归正传,对我个人而言,我的目标并不是做一个QQ仿版的玩具,而是希望做成一个能够真正使用的产品(这个过程还有很长的路要走),并持续维护下去。 一.已实现的功能 (01)注册、登录、添加好友、好友列表。 (02)文字聊天、字体设置、表情、窗口震动、截图、手写板 (03)群功能:创建群、加入群、退出群、群聊天 (04)文件传送、文件夹传送(支持断点续传) (05)语音视频聊天 (06)远程磁盘 (07)远程协助 (08)共享桌面(可以指定要共享的桌面区域) (09)可靠的P2P (10)网盘 (11)离线消息 (12)离线文件 (13)最近联系人列表 (14)系统设置:开机自动启动、麦克风设备索引、摄像头设备索引,叉掉主窗口时关闭程序还是隐藏窗口。 二.后续待实现的功能 (1)增加持久化支持 (2)视频会议 (3)聊天记录 三.框架选型 如果要完全从头开发GG,其难度可想而知,所以,利用现有的成熟框架是必要的,我们必须站在别人的肩膀上,才能做得更快更好。截至到现在,GG 所采用的框架和素材如下: (1)通信框架:ESFramework (2)语音视频:OMCS (3)皮肤框架:SkinForm (4)截屏类库:ImageCapturerLib (5)图片素材:90%以上来自QQ。 开发环境:VS2010 ,开发语言:C#, .NET Framework 版本: 2.0 四.相关说明 1.如果要将GG部署广域网,则可以在服务端的配置文件中设置监听的端口;而在客户端的配置文件中,则可以指定服务器的IP和Port。 2.虚拟数据库 (1)为了部署测试更简单,GG没有采用真实的物理数据库,而是在内存中虚拟了一个数据库(即服务端的VirtualDB类),用于存储用户注册信息、好友关系、群信息等。 (2)GG内置了几个用户:10000、10001、10002、10003、10004,它们的登录密码都是"1"。 (3)GG内置的这几个用户之间都是好友关系。 (4)GG内置了两个群:G001、G002。G001群包含所有内置测试用户,G002群包含10000和10001两个用户。 (5)上述的这些内置信息,在VirtualDB类的构造函数中设定。 3.麦克风、摄像头的选择可在客户端系统设置窗口(SystemSettingForm)中指定。 4.语音视频:也有很多朋友问语音视频设备的工作怎么不正常,或者语音视频不流畅,这个可以直接参考OMCS官方文档:摄像头、麦克风、扬声器、设备测试 、带宽要求。 5.GG的皮肤控件使用的是SkinForm,如果有关于SkinForm的问题,可以直接联系我的好友 威廉乔克斯_汀。 6.特别说明一下:GG项目中,只要是我写的代码,全部都放出来了。拜托喜欢每一个dll都有源码的朋友不要再问我要其它的源码了:) 五.版本记录 2013.08.07 -- V1.0, 登录、好友列表、文字聊天、文件传送、文件夹传送 2013.09.02 -- V1.8, 语音视频聊天 2013.09.23 -- V2.0, 网盘、远程磁盘 2013.11.05 -- V2.4, 远程协助、共享桌面 2014.04.15 -- V3.0, 注册、加好友、加入群、群聊 2014.05.16 -- V3.2, 离线消息、离线文件 2014.05.28 -- V3.4, 系统设置、最近联系人
自从微信出来后,语音消息和语音留言变得非常流行,按下一个键说话,比打字要方便多了。GG在V3.6版本增加了对语音消息和语音留言(或称为离线语音消息)的支持。这两个功能的实现已经很完整,只是比较遗憾的一点是:GG所使用的文本框控件,还没有办法像微信的聊天窗口的文本框那样嵌入表示语音消息的控件,所以,我不得不把接收到的语音消息使用一个下拉列表罗列出来,实在很无奈。 一.GG V3.6 新增功能展现  1.语音消息 2.语音留言 3.离线消息分类:离线文字消息、离线语音消息。 4.修复bug:V3.5版本中出现了收不到离线文字消息的bug,已被修复。 发送语音消息: 说明:点击菜单栏的麦克风按钮,窗口右侧将出现一个记录语音的Panel,按下“请按住说话”按钮即可开始记录语音,松开后,将完成记录,并将语音消息发送给对方。 接收语音消息、播放语音消息: 说明:点击下拉列表中的条目,即可播放相应的语音消息。 二.实现思路 虽然提供了源代码,但是,我还是想将主要的思路列一下,这样,大家理解起源码来,会节省中搜索“V3.6”,既可以看到本次修改所涉及到的主要源码部分。 2. 客户端增加AudioMessagePanel控件,用于记录语音消息。 3. 语音消息的采集是使用OMCS的IMultimediaManager的微信控制器模块MicroMessageController来实现的。 4. 语音消息的播放使用的是MicroMessagePlayer组件。 5. 在MainForm的Initialize方法中,预定MicroMessageController的MicroMessageReceived事件,以接收所有在线语音消息。 6. InformationTypes增加OfflineAudioMessage消息类型,用于表示离线的语音消息。 7. 在MainFormPartial.cs文件的HandleInformation方法中,在处理离线消息时,区分离线的文字消息和离线的语音消息,并分别处理。 8. 在服务端OfflineMessageController中,预定了IMultimediaServer的MicroMessagePostFailed事件,以捕获所有发失败的语音消息,并将其与离线文字消息一样的方式存储、以及后续处理过程也一致。 注:GG使用VS2010编译生成的GG.exe文件,这个文件经常被新毒霸误报为病毒,所以,这次发布的压缩包中我把客户端生成的GG.exe删除了,大家可以自己编译生成它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值