【转】可在广域网部署运行的QQ高仿版 -- GG叽叽V3.2,增加离线消息、离线文件功能(源码)...

(几句题外话:虽然就如何将GG发展为一个有商业价值的产品,我还没有很清晰明确的思路,但是从GG发布以来,通过GG认识了一些朋友,也接了一些小单子,赚了一点小钱。有了一点甜头,目前和2、3个好朋友一起做做小项目也是不错的,这未尝不是一条养家糊口之路了?呵呵)

  距离上次更新(GG叽叽V3.0,完善基础功能)正好有1个月了,在这个月中,我主要为GG增加了离线消息和离线文件的功能。之所以将这两个功能提前实现,是因为至GG发布以来,就有很多朋友问我在GG的基础上如何实现离线消息和离线文件。看来作为一个能用的IM软件,离线消息和离线文件是必备的基础功能了。

一.GG V3.2 新增功能展现 

(1)离线消息。

(2)离线文件。

(3)以前功能的几个bug修改。

      废话不多说,还是先上图。

  离线消息:

      

  发送离线文件:

      

  离线文件发送完成、接收完成:

  

 

二.实现思路

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

1. GG V3.2仍然使用的是在内存虚拟的数据库VirtualDB类,并且在其中增加了两个表:offlineMessageTable、offlineFileTable,分别用于存储离线消息和离线文件条目信息。

    如果使用真实的数据库,移植也是很简单的,只需要将VirtualDB的所有方法重写,并与真实的数据库交互即可。

2. 在服务端增加了OfflineMessageController类,用于管理离线消息。

3. 在服务端增加了OfflineFileController类,用于管理离线文件。注意:GG将要中转的离线文件是保存在服务端运行目录下的OfflineFiles文件夹下(可在OfflineFileController源码中修改这个路径)。

4. 需特别提醒是,网盘功能和离线文件功能的实现都用到了一个非常重要的字段,TransferingProject的Comment属性:

(1)TransferingProject的Comment属性对应着方法BeginSendFile(用于请求发送文件)的comment参数。

(2)在网盘的功能中,comment用于表示上传或下载时存储的路径,GGLib项目中的Comment4NDisk静态类用于支持这一点。

(3)在离线文件功能中,comment用于表示发送者或接收者的UserID,GG.Core项目中的Comment4OfflineFile静态类用于支持这一点。

5.离线消息基本逻辑要点:通过预定IRapidServerEngine的CustomizeController属性的TransmitFailed事件,来取得所有转发失败的消息,并只关注其中的聊天消息。

6.离线文件基本逻辑要点:

(1)当客户端登录成功并完成初始化后,会向服务器发送两个请求消息(位于MainForm的MainForm_Load方法):InformationTypes.GetOfflineMessage、InformationTypes.GetOfflineFile。

(2)服务端接收到上述两个请求后,会调用OfflineMessageController和OfflineFileController来分分别处理。(位于CustomizeHandler类的HandleInformation方法)

(3)无论客户端(作为接收者)是接收完了离线文件、还是拒绝了离线文件,服务端都会发送一个InformationTypes.OfflineFileResultNotify消息通知离线文件的发送方。

 

三.GG V3.2 源码下载

  GG V3.2 源码

注:GG使用VS2010编译生成的GG.exe文件,这个文件经常被新毒霸误报为病毒,所以,这次发布的压缩包中我把客户端生成的GG.exe删除了,大家可以自己编译生成它。

 

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

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

大家有什么问题和建议,可以留言,也可以发送email到我邮箱:ggim2013@163.com。 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、码描述 GG2014是QQ高仿,包括客户端和服务端,可在广域网部署使用。我的目标并不 是做一个QQ高仿的玩具,而是希望做成一个能够真正使用的产品(这个过程还有 很长的路要走),并持续维护下去。小编亲自测试完美运行,强烈推荐一下,感兴趣 的朋友们千万不要错过啊。 二、功能介绍 GG2014 已经实现了如下功能: (01)注册、登录、添加好友、好友列表。 (02)自拍头像。 (03)文字聊天、字体设置、GIF动态表情、窗口震动、截图、手写板、登录状态 (在线、离开、忙碌、勿打扰、隐身)、输入提醒 (04)群功能:创建群、加入群、退出群、群聊天 (05)文件传送、文件夹传送(支持断点续传) (06)语音视频聊天 (07)远程磁盘 (08)远程协助 (09)共享桌面(可以指定要共享的桌面区域) (10)可靠的P2P (11)网盘 (12)离线消息 (13)离线文件 (14)语音消息、语音留言 (15)最近联系人列表 (16)系统设置:开机自动启动、麦克风设备索引、摄像头设备索引,叉掉主窗口时 关闭程序还是隐藏窗口。 (17)聊天记录:支持本地保存和服务器端保存两种方式。 (18)好友分组:新增/删除分组,修改分组名称,改变好友的所属分组。 (19)托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点 击头像,将弹出与好友的聊天框。 (20)输入提醒:像QQ一样,当对方正在输入消息时,我这边的聊天框可以看到对方 “正在输入”的提示。 (21)自动记录:GG2014会自动记录上次打开的主界面的位置、大小;最后一次打开 的聊天窗口的大小;最后一次 设定的字体的颜色、大小等。 (22)打开聊天窗口时,自动显示上次交谈的最后一句话。 三、注意事项 1、开发环境为Visual Studio 2010,无数据库,使用.net 2.0开发。 2、该码仅供学习交流使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值