可在广域网部署运行的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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自从微信出来后,语音消息和语音留言变得非常流行,按下一个键说话,比打字要方便多了。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删除了,大家可以自己编译生成它。
源码描述: 一、源码描述 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。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值