可在广域网部署运行的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。
可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)相关推荐
- 【转】可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)
前段时间看到园子里有朋友开发了QQ高仿版的程序,我也非常有兴趣,以前一直有个做即时聊天程序的梦,趁这段时间工作不是很忙,就开始动手来做这个事情.根据我以往积累下来的项目经验,实现QQ的基本功能,问题应 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V1.8(源码)
距离的GG 1.0发布已经三周了,这三周内,我利用业余时间为GG增加了视频聊天的功能.个人觉得进展有些缓慢,主要是因为大多数时间都花在了UI上.由于本人不会PS,所以图片素材都是从网上一个一个搜下来的 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V2.0,增加网盘和远程磁盘功能(源码)...
尽力2~3周发布一个版本,我这次也没有失言.这段时间内,我仿照QQ的微云功能,在GG中增加了网盘的功能,而且,我还自创了一个QQ没有的新的功能:远程磁盘.正如远程桌面一样,远程磁盘允许我们像访问本地磁 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)
(前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽(开源)
以前一直有要做个像QQ这样的即时聊天程序的想法,趁这段时间工作不是很忙,就开始动手来做这个事情.根据我以往积累下来的项目经验,实现QQ的基本功能,问题应该不大.当然,我的目标并不是做一个QQ高仿版的玩 ...
- 如何做到在虚拟数据库和真实数据库之间自由切换?【低调赠送:QQ高仿版GG 4.4 最新源码】...
记得以前在公司上班时,有时候白天的活没干完,我就会把工作带回家晚上加班继续做.但是,我们开发用的数据库是部署在公司局网内部的一台服务器上的,在家里是肯定连不上这台机器的.在家里没有数据库,服务端就跑不 ...
- QQ揭秘:如何实现托盘闪动消息提醒?【低调赠送:QQ高仿版GG 4.1 最新源码】
转载自:https://www.cnblogs.com/justnow/p/4195142.html 当QQ收到好友的消息时,托盘的图标会变成好友的头像,并闪动起来,点击托盘,就会弹出与好友的聊天框, ...
- thinkPHP仿QQ飞车手游模拟抽奖源码
介绍: thinkPHP仿QQ飞车手游模拟抽奖源码,用途很简单,就是看看你投入多少钱能抽到. 使用方法: 下载源码,上传解压到你的服务器或者主机里面. 由于本程序是thinkPHP开发的,所以需要配置 ...
- 恋爱小助手微信QQ双端小程序源码/可添加流量主,无需域名无需服务器
源码介绍 恋爱小助手微信QQ双端小程序源码,无需服务器和域名,可添加流量主,搭建教程都打包在文件里面了. 源码特点: 1.支持任意漫画头像生成功能,后端自定义字体,颜色,大小,角度,位置,二维码水印等 ...
最新文章
- 阿里腾讯今日头条纷纷选择的工具,ClickHouse到底有什么本事?
- 【Apache】 LXC 容器中重启 Apache 报错: Failed to set up mount namespacing: Permission denied
- html5中音乐播放器怎么写,打造属于自己的音乐播放器 HTML5之audio标签
- Quartz 定时任务(Scheduler)的 3 种实现方式
- arcgis风向_[ArcGIS] 空间分析(六) 追踪分析(台风路径)
- [转载] Python程序将十进制转换为二进制,八进制和十六进制
- Angularjs interceptor
- zk4android,zk4 复刻实战有感
- 板邓:wordpress自定义用户角色和权限全面解析
- Java SimpleDateFormat.setLenient(boolean lenient)方法使用
- 我使用的安卓软件名单_我是亲民_新浪博客
- ArcGis制作三维地形图教程
- android 单双层桌面切换
- __attribute__((section(”name“)))的一些理解
- 由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题
- 有道笔记 android,随时随地,记录一切:有道笔记Android版体验
- 美团Java后台一面
- clang vectorization
- 前端 html+css+javascript (三剑客) 未完待续~~~
- 设计期权套期保值方案时应注意的问题