zoukankan      html  css  js  c++  java
  • 可在广域网部署运行的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给我。

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

  • 相关阅读:
    升级python
    python内置函数整理
    import 搜索路径
    webpy 解决中文出现UnicodeDecodeError: 'ascii' codec can't decode byte 问题
    未预期的符号 `$'{ '' 附近有语法错误
    python引入模块时import与from ... import的区别
    "Native table 'performance_schema'.'session_variables' has the wrong structure") [SQL: "SHOW VARIABLES LIKE 'sql_mode'"]
    git命令
    Redis简介
    MongoDB基本操作
  • 原文地址:https://www.cnblogs.com/justnow/p/3243187.html
Copyright © 2011-2022 走看看