一种即时通讯系统及电子设备的制作方法

文档序号:7926196
专利名称:一种即时通讯系统及电子设备的制作方法
技术领域
本发明属于计算机技术领域,尤其涉及一种即时通讯系统及电子设备。
技术背景网络即时通讯(InstantMessenger, IM)工具发展到今天,已经被大多数的 网民所接受,用户无论在生活还是工作都大量的使用IM软件实现与朋友、同 事以及同学之间的交流与沟通,IM软件已经成为用户中日常生活中不可缺少的 工具之一,用户对IM软件的易用性,稳定性,安全性、易扩展性等方面提出 了较高的要求。现有的大多数IM软件,虽然功能强大、安全性高,但是各模 块之间耦合性高、相互依赖严重,不易于后期功能扩展、可维护性差。发明内容本发明实施例的目的在于提供一种即时通讯系统,旨在解决现有IM软件 各模块之间耦合性高、不易于扩展和可维护性差等问题。本发明实施例是这样实现的, 一种即时通讯系统,所述系统包括用户信息模块,用于根据存储的用户及其联系人的信息维护整个即时通讯 系统的用户信息,并建立用户的联系人列表;对话框窗口模块,用于实现对话框窗口的搡作,并负责管理和维护所有的 对话框窗口信息;以及主界面模块,用于在主界面中显示所述用户信息模块所建立的联系人列表 中各用户信息,根据用户输入的操作信息调用所述对话框窗口模块完成与联系 人关联的对话框窗口的相应操作。本发明实施例的另一目的在于提供包含上述即时通讯系统的电子设备。在本发明实施例中,通过不同的模块分别完成对用户信息、主界面和对话 框窗口的处理,实现了一种即时通讯系统,系统各模块之间的松散耦合、易于 后期功能扩展、可维护性强。


图1是本发明实施例提供的即时通讯系统的结构图;图2是本发明实施例提供的主界面的示意图;图3是本发明实施例提供的对话框窗口的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。在本发明实施例中,通过不同的模块分别完成对用户信息、主界面和对话 框窗口的处理。图1示出了本发明实施例提供的即时通讯系统的结构,为了便于说明仅示 出了与本发明实施例相关的部分。该系统可以用于电子设备,例如计算机、个人数码助理(Personal Digital Assistant, PDA)、移动电话等,可以是运行于这些电子设备内的软件单元、 硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些电子设 备中或者运行于这些电子设备的应用系统中,其中用户信息模块101,根据存储的用户及其联系人的信息维护整个即时通讯 系统的用户信息,并建立用户的联系人列表。对话框窗口模块102,实现对话框窗口的操作,并负责管理和维护所有的 对话框窗口信息。主界面模块103,在主界面中显示用户信息模块101所建立的联系人列表中各用户信息,根据用户输入的操作信息调用对话框窗口模块102完成与联系 人关联的对话框窗口的相应操作。这里,用户在主界面上点击某个联系人时,调用对话框窗口模块102实现弹出相应联系人的会话窗口。在本发明实施例中,将用户的信息及该用户所拥有的各联系人的信息存储 在服务端的一个.ini等文件中,用户信息包括即时通讯号码、头像序号、昵称、 性别资料等,在用户通过即时通讯系统登陆后,从服务端获取存储的相应用户 及其所拥有的各联系人的信息,根据获取到的信息维护整个即时通讯系统的用 户信息。在用户信息才莫块101中建立用户信息类CUserlnfo和用户信息管理类 CuserlnfoMgr,详述i口下用户信息类CUserlnfo,用于维护用户及其每个联系人的基本信息,该类封 装了用户或其每个联系人的即时通讯号码、头像序号、昵称、性別资料等。外 界如要得到用户或其每个联系人的即时通讯号码,只有调用该类暴露给外界的 相应接口获取。用户信息管理类CuserlnfoMgr,实现对用户信息类CUserlnfo的管理,负 责维护所有用户信息类CUserlnfo的信息,其内部我们利用map<DWORD, CUserInfo> m—MapUserlnfo来实现,使用即时通讯号码作为用户信息的索引, 根据用户信息中的特定号码,即通讯号码,建立联系人列表。在用户信息管理 类CUserlnfoMgr中的添加成员方法用于从.ini文件中读取全部联系人的用户信 息,并把各个用户信息添加到MapUserlnfo结构中。为了能让其他模块中的相关部分获取其想得到的用户信息,但又不依赖于 用户信息管理类CUserlnfoMgr,以达到模块独立的要求。在这里我们利用COM 规范标准,将用户信息类CUserlnfo和用户信息管理类CUserlnfoMgr定义为一 个进程内组件(in-process component),也即COM组件,并为其定义用户信 息接口 IUserlnfo,向外界提供调用用户信息管理类CUserlnfoMgr操作的接口 , 例如定义接口 HRESULTGetNickName (DWORD dw, BSTR*pt),用于提供 给调用者所想得到的某用户的昵称。然后,将主界面冲莫块103实现为进程外组件(out-of-process component), 在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用 户输入的操作信息调用对话框窗口模块102完成与相应联系人关联的对话框窗 口的相应操作。在其内部添加私有变量CListCtrlm—listCtrl,用于实现将联系人 列表中各用户信息显示在主界面中,主界面如图2所示。其中,我们将用户信 息管理类CUserlnfoMgr作为该组件的全局变量,这样的好处是全局只有一份用 户信息的拷贝,对于分布式的应用来说,这样可以有效的解决数据同步的问题。 使用该方案,可以很好的实现用户信息与界面分离、模块化程序设计的目标, 并为后续工作的开展提供了强有力的保障。接着,将对话框窗口模块102实现为另外一个进程内组件,以供主界面模 块103调用,用户在主界面上点击某个联系人时,负责弹出对应相应联系人的 会话窗口的创建和管理。定义对话框窗口类CallInOneDiag,用于实现与联系人 关联的对话框窗口的全部操作,对话框窗口的界面如图3所示。在对话框窗口 类 CallInOneDiag 中添加私有成员 map<DWORD, CAllInOneDiag*> m—diagShow,维护、管理对话框窗口类CallInOneDiag对应相应联系人的对话 框窗口实例对象。定义对话框窗口管理类,负责管理和维护所有的对话框窗口 类CallInOneDiag的实例。为了每个对话框窗口程序在点击关闭按钮结束自己 的生命周期时,能通知其对应的对话框窗口管理类的实例,本发明中称为管理 者,好让其在m—diagShow中删除该对话框窗口实例对象本身,在对话框窗口 类CAllInOneDiag中添力口私有成员CComPtr<IAllInOneDiag> pAllInOneDiag来 保存其管理者的指4十,与此同时,在对话框窗口管理类中定义接口 HRESULT RemoveAllInOneDiag ( DWORD dw)用于在m_diagShow中删除特定的对话框 窗口类CAllInOneDiag的实例。这样,由于某个具体的对话框窗口类 CAllInOneDiag实例便可以调用其管理者的移除对话框窗口的接口 RemoveAUInOneDiag (DWORD dw),从而达到通知其的目的。这样,对话框 窗口类CAllInOneDiag的实例与其管理者之间的管理关系就建立起来了 。另外,为对话框窗口模块102定义对话框窗口管理类接口 IAllInOneDiag, 用于向外界提供调用对话框窗口类CallInOneDiag操作的接口。在该接口定义2 个接口 HRESULTDiagOpen (DWORD dw, IUserlnfo承pUserlnfo ) 、 HRESULT DiagClose (),以供主界面模块103程序调用。同时在主界面模块103中保存 所述对话框窗口类CAllInOneDiag的接口指针,用于和对话框窗口模块102进 行交互,通过在主界面才莫块103程序中添加私有成员CComPtr<IAllInOneDiag> pAllInOneDiag来实现。在用户点击主界面的一个联系人时,主界面模块103 首先调用对话框窗口管理类CAllInOneDiag的COM^妄口,再由对话框窗口管 理类负责完成与该联系人对应的对话框窗口的打开和关闭操作等。上述对话框窗口类CAllInOneDiag负责对话框窗口显示,它还可以维护所 有在对话框窗口界面上显示的内容和执行的操作,后续程序中关于对话框窗口 的所有变动只需在对话框窗口类CAllInOneDiag中实现相应的变动即可,而不 需要改动其他才莫块,为程序的扩展提供了更大的自由。在本发明实施例中,利用孩t软基础类(Microsoft Foundation Classes, MFC ) 开发环境和COM组件技术,实现了一种轻量级即时通讯系统的架构,将用户 信息模块101和对话框窗口模块102实现为进程内组件,将主界面模块103实 现为进程外组件,在MFC开发环境中通过定义不同的类,来分别负责维护用 户信息和界面。进一步地,可以将即时通讯系统的其他扩展功能(例如系统设置、显示天 气预报等)也实现为相应的进程内组件,主界面模块103接收到用户输入的操 作信息后,调用相应的进^E内组件完成相应操:作。另外,本发明实施例提供的即时通讯系统也可以在一个用户本次登陆结束 后将该用户的信息及其拥有的各联系人的信息存为本地^磁盘数据。'这样,该用 户在下次登陆过程中,即时通讯系统可以直接从本地读取该用户的信息及其拥 有的个联系人的用户信息,而无需再从服务端获取数据,有利于降低服务端的 负载。当然,本发明实施例提供的即时通讯系统除了用COM组件实现,还可以 根据不同的应用场景,将整个即时通讯系统用其他的组件方式实现,例如CORRBA、 .NET、 DCOM等。在本发明实施例中,通过不同的模块分别完成对用户信息、主界面和对话 框窗口的处理,实现了一种即时通讯系统,系统各^t块之间的^^散耦合、易于 后期功能扩展、可维护性强。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机 可读取存储介质中,所述的存储介质,如ROM/RAM、 ^兹盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种即时通讯系统,其特征在于,所述系统包括用户信息模块,用于根据存储的用户及其联系人的信息维护整个即时通讯系统的用户信息,并建立用户的联系人列表;对话框窗口模块,用于实现对话框窗口的操作,并负责管理和维护所有的对话框窗口信息;以及主界面模块,用于在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用户输入的操作信息调用所述对话框窗口模块完成与联系人关联的对话框窗口的相应操作。
2、 如权利要求l所述的系统,其特征在于,所述用户信息模块和对话框窗 口模块为进程内组件,所述主界面模块为进程外组件。
3、 如权利要求2所述的系统,其特征在于,所述进程内组件和进程外组件 均为COM组件。
4、 如权利要求3所述的系统,其特征在于,所述用户信息模块包括 用户信息类,用于维护用户及其每个联系人的基本信息; 用户信息管理类,用于实现对所述用户信息类的管理;以及 用户信息接口 ,用于向外界提供调用所述用户信息管理类操作的接口 。
5、 如权利要求3所述的系统,其特征在于,所述对话框窗口模块包括 对话框窗口类,用于实现与联系人关联的对话框窗口的操作;对话框窗口管理类,用于负责管理和维护所有的对话框窗口类的实例;以及对话框窗口管理类接口,用于向外界提供调用所述对话框窗口类操作的接。
6、 如权利要求4所述的系统,其特征在于,所述主界面模块将用户信息管 理类作为全局变量。
7、 如权利要求5所述的系统,其特征在于,所述主界面模块中保存所述对话框窗口管理类的接口指针,用于和所述对话框窗口模块进行交互。
8、 如权利要求2所述的系统,其特征在于,所述系统利用微软基础类开发 环境实现。
9、 一种包含权利要求!至8任一项所述即时通讯系统的电子设备。
全文摘要
本发明适用于计算机技术领域,提供了一种即时通讯系统及电子设备,所述系统包括用户信息模块,用于根据存储的用户及其联系人的信息维护整个即时通讯系统的用户信息,并建立用户的联系人列表;对话框窗口模块,用于实现对话框窗口的操作,并负责管理和维护所有的对话框窗口信息;以及主界面模块,用于在主界面中显示所述用户信息模块所建立的联系人列表中各用户信息,根据用户输入的操作信息调用所述对话框窗口模块完成与联系人关联的对话框窗口的相应操作。在本发明中,通过不同的模块分别完成对用户信息、主界面和对话框窗口的处理,实现了一种即时通讯系统,系统各模块之间的松散耦合、易于后期功能扩展、可维护性强。
文档编号H04L12/58GK101404626SQ200810217580
公开日2009年4月8日 申请日期2008年11月10日 优先权日2008年11月10日
发明者刘晓宇, 宇 库 申请人:腾讯科技(深圳)有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1