CN100450006C - 一种基于对等模式的讨论组实现方法 - Google Patents
一种基于对等模式的讨论组实现方法 Download PDFInfo
- Publication number
- CN100450006C CN100450006C CNB2005101279060A CN200510127906A CN100450006C CN 100450006 C CN100450006 C CN 100450006C CN B2005101279060 A CNB2005101279060 A CN B2005101279060A CN 200510127906 A CN200510127906 A CN 200510127906A CN 100450006 C CN100450006 C CN 100450006C
- Authority
- CN
- China
- Prior art keywords
- discussion group
- packet
- terminal
- group
- discussion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于对等模式的讨论组实现方法,该方法在讨论组创建者所在终端生成能够有效标识一个讨论组的讨论组标识和确定加入讨论组的成员;根据各成员标识获得对应的成员的地址,并生成包含所述讨论组标识和讨论组成员信息的创建讨论组数据包;以及讨论组创建者所在终端按成员的地址将所述数据包直接发送给各成员,并在向各成员发送完数据包后呈现讨论组条目。
Description
技术领域
本发明涉及通信及计算机技术领域,尤其涉及一种基于对等模式的讨论组实现方法。
背景技术
网络即时通讯工具发展到今天,已经被大多数的网民所接受,进行日常的交流与沟通,但是用户之间的聊天模式发展至今仍然没有太大的变化,用户不再是只需要个人对个人的交流方式,同时也需要能够与多个人对某个话题进行讨论,因此出现了群或者讨论组这类多人对话的形式,群与讨论组这类多人对话的出现大大方便了多个用户之间的交流与沟通,使得用户的交流范围也变得更加的广泛,同时可以在日常生活中通过IM软件从多个用户那里获取到有价值的信息,提高自己解决问题的能力。
目前讨论组的技术实现方案以服务器为控制中心,如图1所示。在服务器中建立讨论组的数据表,在服务器中数据库中保存了每个讨论组的标识(ID)、讨论组的名称和讨论组成员列表等信息,由服务器负责维护和管理讨论组中的这些基本信息。对于讨论组成员的之间的消息沟通,其过程是首先某个讨论组成员发送某个消息给讨论组服务器,接着讨论组服务器通过讨论组ID到服务器查找讨论组的成员列表的用户标识,即用户的号码,然后遍历用户标识的列表进行消息重新下发,最后其他讨论组接收到消息后,进行解析显示。在这个过程中,服务器实际上完成了查找、遍历和转发等多项处理工作。
随着用户数量以及建立的讨论组的数量的逐渐增大,造成了对讨论组服务器的巨大压力,必须保证有足够的存储空间来保存与管理每个讨论组的数据表结构,而且在讨论组中成员之间消息传递,采用的也是由讨论组服务器根据成员列表进行转发的方式,这样也造成了服务器的处理的压力过大。
发明内容
本发明提供一种基于对等模式的讨论组实现方法,以解决现有技术中讨论组消息需要经服务器处理而导致服务器负荷过大的问题。
本发明提供以下技术方案:
一种基于对等模式的讨论组实现方法,包括如下步骤:
在讨论组创建者所在终端生成能够有效标识一个讨论组的讨论组标识和确定加入讨论组的成员;
根据各成员标识获得对应的成员的地址,并生成包含所述讨论组标识和讨论组成员信息的创建讨论组数据包;以及
讨论组创建者所在终端按成员的地址将所述数据包直接发送给各成员,并在向各成员发送完数据包后呈现讨论组条目。
其中:
在讨论组创建者所在终端还进一步建立讨论组名称并加入到所述数据包中。
在生成所述数据包后进一步利用预定的加密算法加密该数据包。
讨论组创建者所在终端确定向成员发送数据包超时后,重新向该成员发送所述数据包,并在重发次数超过预定次数后停止向该成员发送数据包。
接收到所述数据包的终端进行下述步骤:
解析创建讨论组数据包中的信息;
根据讨论组标识判断本地是否存在相同的讨论组,若是,则利用解析出的信息更新讨论组信息,否则,利用解析出的信息生成讨论组并呈现讨论组条目。
若终端接收到所述数据包后确定该数据包已被加密,则利用预定的算法解密该数据包。
若解密数据包失败,则丢弃所述数据包。
一种基于对等模式的讨论组实现方法,包括如下步骤:
发起会话的讨论组成员所在终端根据讨论组标识获取该讨论组中的各成员标识,并根据成员标识获取对应的成员的地址;
至少利用所述讨论组标识、发送者标识和消息内容生成讨论组消息类型的数据包,并根据成员地址直接发送给讨论组中的各成员;
接收到所述数据包的终端解析该数据包,并根据讨论组标识和发送者标识确定消息发送者为所述讨论组成员时显示消息内容。
其中:
发起会话的讨论组成员所在终端发送数据包前利用约定的算法对数据包进行加密;接收到所述数据包的终端利用约定的算法对其进行解密。
若接收到所述数据包的终端解析或解密数据失败,则丢弃所述数据包。
采用本发明建立讨论组和进行讨论组会话,不再需要服务器参与讨论组的建立、管理、消息转发和销毁等操作处理,全部由客户端完成整个过程,在不影响用户使用讨论组习惯的情况下,大大减少了服务器的存储空间、并发处理以及负载等方面的压力,而且还可以大大节省开发的成本开销,能够满足因讨论组逐渐增加而产生的各种需求。
附图说明
图1为现有技术基于服务器模式的讨论组实现示意图;
图2、图3为本发明中建立讨论组的流程图;
图4为本发明中在讨论组内进行会话的流程图。
具体实施方式
由于当前的讨论组的技术实现方案是以服务器为控制中心,由服务器负责讨论组的建立、销毁和管理,以及成员之间的消息沟通,随着用户数量以及建立的讨论组的数量的逐渐增大,无论从存储空间,并发处理以及负载方面都造成了对服务器的巨大压力。
为此,本发明由各个客户端对等的负责讨论组的建立、控制、管理以及销毁讨论组等操作,这样把负荷压力分散到了客户端。在创建讨论组时,由讨论组创建者所在终端直接向各成员发送创建讨论组的数据包。进一步的,在建立讨论组后发起会话的讨论组成员所在终端直接向讨论组其他成员发送讨论组消息。
参阅图2所示,讨论组创建者的客户端的处理流程如下:
步骤200、某个用户希望建立讨论组,能够进行多人会话,通过IM软件的讨论组建立入口调出操作界面如图4所示,同时建立用户希望加入讨论组的成员数组初始化列表数据结构。
步骤210、用户通过操作建立讨论组的操作界面,可以不断添加讨论组成员,同时也可以设置新建立讨论组的名称,把用户通过界面操作添加的讨论组成员填充到步骤200中建立的数组列表数据结构中。
步骤220、利用Windows底层应用程序接口(API)的GUID生成函数生成讨论组的唯一标识ID。
生成唯一标识是为了在用户的本地存储中管理讨论组的过程避免出现重复讨论组ID。
步骤230、将讨论组的唯一标识ID、讨论组名称、希望加入讨论组的成员数组列表和创建者的用户标识等字段组合到协议数据包中,这些字段共同组成了讨论组的完整基本信息;
步骤240、按照约定的协议格式进行组包操作,并将该消息的消息类型设置为讨论组建立类型。
为保证数据安全,可进一步利用约定的加密算法对数据包进行加密。
步骤250、遍历步骤2中的数组列表数据结构,根据其中每个讨论组成员的用户标识号码(Uin,即用户标识),查询本地文件存储的联系人信息得到各成员对应的动态IP地址以及PORT端口。
步骤260、根据各成员的IP地址与PORT端口,分别生成发送消息的套接字接口,并向各成员发送经过加密的协议数据包,同时利用事件回调机制等待成员的返回消息。
若通过事件回调机制判断发送的协议数据包响应超时,则重发超时的数据包,并在重发次数超过预定次数后停止向该成员发送数据包。例如可以设置重发的次数为3次,如果3次均超时则说明该用户可能未上线,放弃向该成员发送数据包。
步骤270、通过面板管理模块生成对应该讨论组的条目(Item),并显示在主面板上,同时利用对话框提示该创建者用户,讨论组已经建立成功,并利用本地存储模块保存该数据结构到本地中,以便于后续管理与维护。
参阅图3所示,接收到创建讨论组数据包的成员所在终端的处理过程如下:
步骤300、用户在约定的接收消息的套接字上异步等待数据包的到来,对接收到的数据包进行解析操作。
若接收到的数据包已被加密,则终端先利用约定的解密算法对该数据进行解密,然后再进行解析。
步骤310、判断该数据包是否为有效的数据包,如果不是,则丢弃该数据包,并继续步骤300;如果是,则进行步骤320。
步骤320、按照约定协议格式解析出数据包中的消息类型字段。
步骤330、判断该消息是否是讨论组建立消息类型,如果不是,则按照原来的消息类型处理函数进行后续的处理操作;如果是,则进行步骤340。
步骤340、从数据包中解析出创建的讨论组标识ID、讨论组名称、讨论组成员数组列表以及讨论组的创建者用户标识。
步骤350、利用解析出来的讨论组标识ID查询本地文件存储模块,判断该讨论组是否已经存在,如果是,则进行步骤360,否则,进行步骤370。
步骤360、通过本地文件存储模块提取出原来的讨论组所有相关信息,包括讨论组的名称,成员列表以及讨论组的创建者,利用数据包解析出来的各个字段进行替换更新处理,继续步骤380。
步骤370、利用本地文本存储模块保存讨论组信息,以便用户后续对该讨论组的维护与管理等操作体验,同时利用面板管理模块根据当前的讨论组信息更新面板与成员列表,并结束。
步骤380、建立包括讨论组唯一标识ID,讨论组名称以及讨论组成员数组列表,讨论组创建者标识等字段的数据结构,并利用解析出的相应的数据字段进行数据结构的填充处理。
步骤390、利用本地文本存储模块保存讨论组数据,以便用户后续对该讨论组的维护与管理等操作体验,生成讨论组对应的面板Item,并提示用户新讨论组建立成功。
当讨论组的创建者以及讨论组的所有成员都在主面板上具有了讨论组的表现形式以及讨论组的本地文件存储后,就可以利用该建立的讨论组进行多人之间的消息沟通。参阅图4所示,讨论组成员之间进行会话的处理过程如下:
步骤400、某个讨论组成员希望发起会话,该客户端获取用户希望展开会话的讨论组的唯一标识ID,通过该唯一标识ID利用本地文件存储模块查询获取对应该讨论组所有成员列表,并把该所有成员加入到建立的数组列表中。
步骤410、客户端软件遍历建立的成员数组列表,提取其中的各成员的用户标识UIN,通过该用户标识UIN查询本地存储模块中对应该用户标识UIN的动态用户IP地址以及PORT端口。
步骤420、设置消息类型字段为讨论组消息,把讨论组唯一ID,成员用户标识UIN,希望发送的消息内容,发送者用户标识UIN,消息类型按照约定的协议格式组合数据包,并按照约定的加密算法进行加密处理,根据各成员的IP地址以及PORT端口分别生成UDP发送套接字。
步骤430、分别通过各发送套接字把组合的数据包发送出去。
步骤440、各对应的成员终端在约定的端口套接字异步等待接收数据包,并对接收到的数据包按照约定的算法进行解密,并按照约定的协议格式进行数据包的解析。
如果解密或解析数据包不成功,则判断该数据包不是有效数据包,丢弃该数据包。
步骤450、按照协议格式提取出消息类型字段,如果消息类型是非讨论组消息,则按照原来的消息类型进行处理,如果是讨论组消息类型,则进行步骤460。
步骤460、利用解析出来的发送者UIN以及讨论组唯一ID查询本地文件储存模块,判断发送者UIN是否是讨论组成员,如果不是,则直接丢弃消息;如果是,则进行步骤470。
步骤470、调用消息显示模块,并利用讨论组模块调出讨论组显示模块,把该消息显示在讨论组的IM聊天窗口中。
采用这种形式,多人会话讨论组的沟通利用的是遍历讨论组成员列表,通过发送特定的消息类型的消息,对其中每个成员进行点对点的消息发送,不再通过服务器进行操作处理,大大节省了开发成本。
本发明由各个客户端对等的负责讨论组的建立、控制、管理以及销毁讨论组等操作,从而将负荷压力分散到了客户端,这样基本上不会对对讨论组服务器产生压力,可以极大满足用户对讨论组的需求增多的要求,而对用户的表现形式与原来的界面操作界面一样,不会对用户的使用造成任何的影响。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1、一种基于对等模式的讨论组实现方法,其特征在于,包括如下步骤:
在讨论组创建者所在终端生成能够有效标识一个讨论组的讨论组标识和确定加入讨论组的成员;
根据各成员标识获得对应的成员的地址,并生成包含所述讨论组标识和讨论组成员信息的创建讨论组数据包;以及
讨论组创建者所在终端按成员的地址将所述数据包直接发送给各成员,并在向各成员发送完数据包后呈现讨论组条目。
2、如权利要求1所述的方法,其特征在于,在讨论组创建者所在终端还进一步建立讨论组名称并加入到所述数据包中。
3、如权利要求1所述的方法,其特征在于,在生成所述数据包后进一步利用预定的加密算法加密该数据包。
4、如权利要求1所述的方法,其特征在于,讨论组创建者所在终端确定向成员发送数据包超时后,重新向该成员发送所述数据包,并在重发次数超过预定次数后停止向该成员发送数据包。
5、如权利要求1至4任一项所述的方法,其特征在于,接收到所述数据包的终端进行下述步骤:
解析创建讨论组数据包中的信息;
根据讨论组标识判断本地是否存在相同的讨论组,若是,则利用解析出的信息更新讨论组信息,否则,利用解析出的信息生成讨论组并呈现讨论组条目。
6、如权利要求5所述的方法,其特征在于,若终端接收到所述数据包后确定该数据包已被加密,则利用预定的算法解密该数据包。
7、如权利要求6所述的方法,其特征在于,若解密数据包失败,则丢弃所述数据包。
8、一种基于对等模式的讨论组实现方法,其特征在于,包括如下步骤:
发起会话的讨论组成员所在终端根据讨论组标识获取该讨论组中的各成员标识,并根据成员标识获取对应的成员的地址;
至少利用所述讨论组标识、发送者标识和消息内容生成讨论组消息类型的数据包,并根据成员地址直接发送给讨论组中的各成员;
接收到所述数据包的终端解析该数据包,并根据讨论组标识和发送者标识确定消息发送者为所述讨论组成员时显示消息内容。
9、如权利要求8所述的方法,其特征在于,发起会话的讨论组成员所在终端发送数据包前利用约定的算法对数据包进行加密;接收到所述数据包的终端利用约定的算法对其进行解密。
10、如权利要求9所述的方法,其特征在于,若接收到所述数据包的终端解析或解密数据失败,则丢弃所述数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101279060A CN100450006C (zh) | 2005-12-07 | 2005-12-07 | 一种基于对等模式的讨论组实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101279060A CN100450006C (zh) | 2005-12-07 | 2005-12-07 | 一种基于对等模式的讨论组实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1980140A CN1980140A (zh) | 2007-06-13 |
CN100450006C true CN100450006C (zh) | 2009-01-07 |
Family
ID=38131161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101279060A Active CN100450006C (zh) | 2005-12-07 | 2005-12-07 | 一种基于对等模式的讨论组实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100450006C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624650B (zh) * | 2012-04-16 | 2014-04-16 | 腾讯科技(深圳)有限公司 | 创建讨论群和基于讨论群的通信方法、服务器及系统 |
CN107026788B (zh) * | 2017-01-19 | 2020-07-07 | 深圳沸石科技股份有限公司 | 终端应用的讨论组中消息屏蔽的方法及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009587A1 (en) * | 2001-07-06 | 2003-01-09 | Intel Corporation | Method and apparatus for peer-to-peer services |
CN1471273A (zh) * | 2003-05-27 | 2004-01-28 | 腾讯科技(深圳)有限公司 | 利用即时通讯工具创建动态讨论组的实现方法和控制流程 |
CN1482771A (zh) * | 2002-09-09 | 2004-03-17 | 腾讯科技(深圳)有限公司 | 一种利用一个号码来标识一个用户群组进行网络通讯的实现方法 |
US20040215735A1 (en) * | 2002-12-20 | 2004-10-28 | Tohru Nakahara | Information management system |
-
2005
- 2005-12-07 CN CNB2005101279060A patent/CN100450006C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009587A1 (en) * | 2001-07-06 | 2003-01-09 | Intel Corporation | Method and apparatus for peer-to-peer services |
CN1482771A (zh) * | 2002-09-09 | 2004-03-17 | 腾讯科技(深圳)有限公司 | 一种利用一个号码来标识一个用户群组进行网络通讯的实现方法 |
US20040215735A1 (en) * | 2002-12-20 | 2004-10-28 | Tohru Nakahara | Information management system |
CN1471273A (zh) * | 2003-05-27 | 2004-01-28 | 腾讯科技(深圳)有限公司 | 利用即时通讯工具创建动态讨论组的实现方法和控制流程 |
Also Published As
Publication number | Publication date |
---|---|
CN1980140A (zh) | 2007-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100505629C (zh) | 基于对等模式建立讨论组及该讨论组即时通信的方法 | |
CN100463405C (zh) | 基于群组的通信方法及系统 | |
CN100531229C (zh) | 通用外部代理 | |
CN101159714B (zh) | 一种即时通讯方法和装置 | |
CN1943131B (zh) | 用于在无线移动终端与联网计算机之间进行消息通信的方法、系统和装置 | |
CN101072103B (zh) | 一种多账号登录即时通讯软件的方法及系统 | |
US8345601B2 (en) | Method for creating a peer-to-peer immediate messaging solution without using an instant messaging server | |
US7269405B2 (en) | System and method for proxy-enabling a wireless device to an existing IP-based service | |
CN101346949B (zh) | 即时消息设备/服务器协议 | |
CN101578891B (zh) | 在融合网际协议消息服务客户端和短消息服务客户端之间建立用于消息通信的会话的方法和系统 | |
US9148333B2 (en) | System and method for providing anonymity in a session initiated protocol network | |
CN101247364B (zh) | 会话消息管理系统和管理方法 | |
CN100556004C (zh) | 一种即时通讯系统中对群组消息接收方式的设置方法 | |
US20040190549A1 (en) | Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload | |
EP2710776B1 (en) | Anonymous signalling | |
CN1514611A (zh) | 用于分布式消息传送系统中匿名群组消息传送的方法和设备 | |
CN101179520A (zh) | 一种感知邮件状态的方法及系统 | |
CN101193070A (zh) | 即时通信系统、即时通信客户端及即时通信方法 | |
CN102474469A (zh) | 用于在即时消息收发服务与短消息服务之间联网的方法和系统 | |
CN106789566A (zh) | 基于手机操作系统的不同im应用消息共享方法和系统 | |
WO2004081725A3 (en) | Communications interchange system | |
CN107508747A (zh) | 融合通信的群组通信方法、服务器及计算机存储介质 | |
CN100450006C (zh) | 一种基于对等模式的讨论组实现方法 | |
CN101247363A (zh) | 实现即时通讯消息弱提示的方法、客户端及系统 | |
CN100411340C (zh) | 一种快速获取在线企业信息的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |