本文主要是介绍即时通信多终端登录时登录状态的下发方法和系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
即时通信(IM)是指能够即时发送和接收互联网消息等的业务。即时通信自产生以来其功能日益丰富,逐渐发展成为集交流、资讯、娱乐、搜索、电子商务、 办公协作和企业客户服务等为一体的综合化信息平台。
随着互联网技术覆盖范围的扩大,即时通信技术也在向多终端化发展。目前,一些重要的即时通信提供商提供多种即时通信客户端,例如可运行于个人 电脑的即时通信客户端、可运行于手机的即时通信客户端以及可运行于电视终 端的即时通信客户端等。通过运行于某一终端的即时通信客户端可向运行在其 它终端上的即时通信客户端发送消息。
为了满足用户随时并且方便地使用即时通信业务的需求,同一即时通信账 号可同时在不同终端的客户端登录。即时通信账号在一终端的客户端登录也可 称之为即时通信账号在该终端登录。
为了将登录状态(包括在线状态和离线状态等)及时通知给好友,方便好 友之间进行即时通信,现有技术中,每当即时通信账号在一个新的终端登录或 退出时,即时通信服务器一般都将即时通信账号登录或退出的消息下发给该即 时通信账号的所有在线好友账号。
例如,某一即时通信账号首先在手机上登录,即时通信服务器向该即时通 信账号的所有在线好友账号登录的客户端发送该即时通信账号的在线状态消 息,客户端接收到消息后,需解析消息,并根据消息内容显示该即时通信账号 的状态;随后,该即时通信账号在PC上登录,即时通信服务器又向该即时通信 账号的在线好友账号登录的客户端发送该即时通信账号的在线状态消息,客户 端接收到消息后,又需要解析消息,并根据消息内容显示该即时通信账号的状 态。
现有技术中,即时通信服务器有可能重复地向即时通信客户端发送相同的 登录状态,重复的登录状态对于用户了解好友的登录情况没有意义,不但占用 即时通信服务器和即时通信客户端的计算机资源,还需要浪费网络带宽资源。
基于此,有必要提供一种可减少重复登录状态信息发送的即时通信多终端 登录时登录状态的下发方法。
一种即时通信多终端登录时登录状态的下发方法,包括以下步骤:
接收即时通信账号在一终端登录或退出的消息;
获取所述即时通信账号当前登录的其它终端的终端信息;
判断所述登录或退出的消息对应终端的优先级是否比所述其它终端的优先 级高,若是,则向所述即时通信账号的在线好友账号下发终端登录状态,该终 端登录状态指示所述即时通信账号在所述对应终端上的登录状态发生变化。
此外,还有必要提供一种可减少重复登录状态信息发送的即时通信多终端 登录时登录状态的下发系统。
一种即时通信多终端登录时登录状态的下发系统,包括:
消息接收模块,用于接收即时通信账号在一终端登录或退出的消息;
终端获取模块,用于获取所述即时通信账号当前登录的其它终端的终端信 息;
优先级比较模块,用于判断所述登录或退出的消息对应终端的优先级是否 比所述其它终端的优先级高;
状态下发模块,用于若所述登录或退出的消息对应终端的优先级比所述其 它终端的优先级高,则向所述即时通信账号的在线好友账号下发终端登录状态, 该终端登录状态指示所述即时通信账号在所述对应终端上的登录状态发生变化。
上述即时通信多终端登录时登录状态的下发方法和系统,接收即时通信账 号在一终端登录或退出的消息,获取该即时通信账号当前登录的其它终端的终 端信息,判断登录或退出的消息对应终端的优先级是否比其它终端的优先级高, 优先级更高时,才向该即时通信账号的在线好友账号下发可指示在对应终端上 的登录状态发生变化的终端登录状态,可减少重复登录状态信息的发送,从而 减少即时通信服务器和即时通信客户端计算机资源的占用,以及节省网络带宽 资源。
附图说明
图1为一个实施例中的即时通信多终端登录时登录状态的下发方法的流程 示意图;
图2为另一实施例中的即时通信多终端登录时登录状态的下发方法的流程 示意图;
图3为一个实施例中的即时通信多终端登录时登录状态的下发系统的结构 示意图;
图4为另一实施例中的即时通信多终端登录时登录状态的下发系统的结构 示意图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单 个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中 的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说 明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次 序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联 的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,一种即时通信多终端登录时登录状态的下 发方法,运行于即时通信服务器,该方法包括以下步骤:
步骤S102,接收即时通信账号在一终端登录或退出的消息。
在一个实施例中,消息内容包括终端信息和事件信息。该终端信息包括终 端标识、终端类型等。事件信息的内容表明即时通信账号是在终端上登录还是 退出。
步骤S104,获取上述即时通信账号当前登录的其它终端的终端信息。该终 端信息包括终端标识和终端类型等。
步骤S106,判断登录或退出的消息对应终端的优先级是否比其它终端的优 先级高,若是,则执行步骤S108,若否,则结束。
可预先设置终端优先级。在一个实施例中,可设置终端类型对应的优先级。 例如,可由高到低依次设置PC终端、手机终端、电视终端对应的优先级。本实 施例中,可将某一终端的终端类型对应的优先级作为该终端的优先级。
步骤S106可从接收的消息中提取终端类型,并查找该终端类型对应的优先 级,将该优先级与其它终端的终端类型对应的优先级相比较。
步骤S108,向上述即时通信账号的在线好友账号下发终端登录状态,该终 端登录状态指示上述即时通信账号在对应终端上的登录状态发生变化。具体的, 向上述即时通信账号的在线好友账号所登录的即时通信客户端下发终端登录状态。
终端登录状态包括终端信息和登录状态,该终端信息包括终端类型等,终 端类型有PC终端、手机终端、电视机终端等,登录状态分为在线状态和离线状态等。
在一个实施例中,上述即时通信多终端登录时登录状态的下发方法还包括 步骤:上述在线好友账号所登录的即时通信客户端根据上述下发的终端登录状 态显示上述即时通信账号的状态。
上述即时通信多终端登录时登录状态的下发方法,接收即时通信账号在一 终端登录或退出的消息,获取该即时通信账号当前登录的其它终端的终端信息, 判断登录或退出的消息对应终端的优先级是否比其它终端的优先级高,优先级 更高时,才向该即时通信账号的在线好友账号下发可指示在对应终端上的登录 状态发生变化的终端登录状态,可减少重复登录状态信息的发送,从而减少即 时通信服务器和即时通信客户端计算机资源的占用,以及节省网络带宽资源。
在一个实施例中,当接收的消息为即时通信账号在一终端登录的消息时, 下发的终端登录状态包含登录的消息对应终端的终端信息和上述即时通信账号 在该对应终端上的登录状态。
例如,某一即时通信账号在一手机终端上登录,下发的终端登录状态可包 括表示登录的终端类型为手机终端的内容和表示登录状态为在线状态的内容。
本实施例中,当某一即时通信账号一终端登录时,只有该终端的优先级比 该即时通信账号当前登录的其它终端高,才向该即时通信账号的在线好友账号 下发该表示该即时通信账号在该终端上在线的终端登录状态,可减少重复登录 状态信息的发送。
在一个实施例中,当接收的消息为即时通信账号在一终端退出的消息时, 上述方法还包括:获取上述即时通信账号当前登录的其它终端中优先级最高终 端;下发的终端登录状态包含该优先级最高终端的终端信息和上述即时通信账 号在该优先级最高终端上的登录状态。
可从步骤S104获取的其它终端的终端信息中提取终端类型,并查找终端类 型对应的优先级,比较查找到的优先级,从而得到最高优先级对应的终端类型。
例如,在即时通信客户端可运行的所有终端中,手机终端的优先级最高, PC终端次之。某时刻一即时通信账号在手机终端和PC终端上都处于在线状态, 随后,即时通信账号从手机终端上退出,此时,在该即时通信账号当前登录的 其它终端中PC终端的优先级最高,则下发的终端登录状态可包括表示登录的终 端类型为PC终端的内容和表示登录状态为在线状态的内容。
需要说明的是,根据本发明的方案,当即时通信账号从登录的优先级最高 的终端退出时,向其在线好友账号发送登录的优先级次之的终端对应的终端登 录状态,该终端登录状态可传达该即时通信账号从该优先级最高的终端退出的 含义,因为,在本发明中,若即时通信账号没有从该优先级最高的终端退出, 则只有当该即时通信账号登录其它优先级更高的终端时,才会向其在线好友账 号发送相应的终端登录状态,因此,向其在线好友账号发送优先级次之的终端 对应的终端登录状态可传达该即时通信账号从该优先级最高的终端退出的含 义。
本实施例中,当即时通信账号在一终端退出时,省略了向在线好友账号发 送可指示该即时通信账号在该退出的终端上的离线状态的第一终端登录状态, 而是直接发送可指示该即时通信账号在优先级最高的其它终端上的在线状态的 第二终端登录状态,而由于只要用户在某一终端在线,其在线好友就可以与其 进行即时通信,至于用户是否从其它终端上退出则关系不大,因此,第二终端 登录状态相对于第一终端登录状态更为有效,本实施例省略第一终端登录状态 的发送,可减少相对无效的消息的发送。
在一个实施例中,若步骤S104没有获取到上述即时通信账号当前登录的其 它终端,则向上述即时通信账号的在线好友账号下发终端登录状态,该终端登 录状态包含登录或退出的消息对应终端的终端信息和上述通信账号在该对应终 端上的登录状态。
例如,某一时刻即时通信账号从登录一手机终端,且该即时通信账号当前 没有登录其它终端,则下发的终端登录状态可包括表示登录的终端类型为手机 终端的内容和表示登录状态为在线状态的内容。又例如,某一时刻即时通信账 号从一手机终端上退出,且该即时通信账号当前没有登录其它终端,则下发的 终端登录状态可包括表示登录的终端类型为手机终端的内容和表示登录状态为 离线状态的内容。
在一个实施例中,在步骤S104之前,上述方法还包括步骤:查找上述即时 通信账号的登录终端信息的存储空间。可在预先记录的即时通信账号与存储空 间地址的对应关系表中查找上述即时通信账号对应的存储空间地址,进一步根 据存储空间地址查找到对应的存储空间。当接收到某一即时通信账号在某一终 端登录的消息,且在上述对应关系表中没有查找到该即时通信账号对应的存储 空间地址时,可申请一块预设大小的存储空间,并将该即时通信账号与申请的 存储空间的地址对应记录在上述对应关系表中。
进一步的,上述方法还包括步骤:当步骤S102接收的消息为即时通信账号 在一终端登录的消息时,在查找到的存储空间中存储登录的消息对应终端的终 端信息。终端信息包括终端标识、终端类型等。
在一个实施例中,在查找到的存储空间中存储登录的消息对应终端的终端 信息的步骤包括:判断查找到的存储空间中剩余空间是否足够存储对应终端的 终端信息,若是,则在查找到的存储空间中存储对应终端的终端信息,若否, 则申请更大的存储空间,将查找到的存储空间中的终端信息移存至新申请的存 储空间,并将对应终端的终端信息存储至新申请的存储空间。新申请的存储空 间的大小可在原存储空间(查找到的存储空间)的基础上增加预设值。
进一步的,在一个实施例中,可释放查找到的存储空间,即上述即时通信 账号的原存储空间,并在即时通信账号与存储空间地址的对应关系表中记录上 述即时通信账号与新申请的存储空间的地址的对应关系。
进一步的,上述方法还包括步骤:当步骤S102接收的消息为即时通信账号 在一终端退出的消息时,在查找到的存储空间中删除退出的消息对应终端的终 端信息。进一步的,在一个实施例中,可判断该查找到的存储空间中存储的信 息是否为空,若是,则可释放该查找到的存储空间,并可在即时通信账号与存 储空间地址的对应关系表中删除上述即时通信账号与该查找到的存储空间的地 址的对应关系。
本实施例中步骤S104可获取查找到的存储空间中存储的终端信息,该终端 信息即为上述即时通信账号当前登录的其它终端的终端信息。
上述方法通过采用变长存储空间来存储即时通信账号所登录终端的终端信 息,相对于采用固定长度的数据结构来存储即时通信账号,一方面可防止新登 录的终端信息覆盖先登录的终端信息,实现即时通信账号多终端登录时终端信 息的信息存储,另一方面,可根据终端信息的需求的存储空间的变化来申请存 储空间,从而可合理地利用存储空间,提高存储空间的有效利用率。
图2为一个实施例中的即时通信多终端登录时登录状态的下发方法的流程 示意图。如图2所示,在一个实施例中,一种即时通信多终端登录时登录状态 的下发方法包括处理即时通信账号登录消息的过程和处理即时通信账号退出的 过程。其中,处理即时通信账号登录消息的过程包括以下步骤:
步骤S202,接收即时通信账号在一终端登录的消息。
步骤S204,获取上述即时通信账号当前登录的其它终端的终端信息。
步骤S206,判断登录的消息对应终端的优先级是否比其它终端的优先级高, 若是,则执行步骤S208,若否,结束。
步骤S208,向上述即时通信账号的在线好友账号下发终端登录状态,该终 端登录状态包含登录的消息对应终端的终端信息和上述即时通信账号在该对应 终端上的登录状态。
而处理即时通信账号退出消息的过程包括以下步骤:
步骤S210,接收即时通信账号在一终端退出的消息。
步骤S212,获取上述即时通信账号当前登录的其它终端的终端信息。
步骤S214,判断登录的消息对应终端的优先级是否比其它终端的优先级高, 若是,则执行步骤S216,若否,结束。
步骤S216,获取上述即时通信账号当前登录的其它终端中优先级最高终端。
步骤S218,向上述即时通信账号的在线好友账号下发终端登录状态,该终 端登录状态包含该优先级最高终端的终端信息和上述即时通信账号在该优先级 最高终端的上的登录状态。
如图3所示,在一个实施例中,一种即时通信多终端登录时登录状态的下 发系统,包括消息接收模块302、终端获取模块304、优先级比较模块306和状 态下发模块308,消息接收模块302、终端获取模块304、优先级比较模块306 和状态下发模块308设置于即时通信服务器,其中:
消息接收模块302用于接收即时通信账号在一终端登录或退出的消息。
在一个实施例中,消息内容包括终端信息和事件信息。该终端信息包括终 端标识、终端类型等。事件信息的内容表明即时通信账号是在终端上登录还是 退出。
终端获取模块304用于获取上述即时通信账号当前登录的其它终端的终端 信息。该终端信息包括终端标识和终端类型等。
优先级比较模块306用于判断登录或退出的消息对应终端的优先级是否比 其它终端的优先级高。
在一个实施例中,上述系统还包括优先级设置模块(图中未示出),用于预 先设置终端优先级。在一个实施例中,优先级设置模块可设置终端类型对应的 优先级。例如,优先级设置模块可由高到低依次设置PC终端、手机终端、电视 终端对应的优先级。本实施例中,可将某一终端的终端类型对应的优先级作为 该终端的优先级。
优先级比较模块306可从接收的消息中提取终端类型,并查找该终端类型 对应的优先级,将该优先级与其它终端的终端类型对应的优先级相比较。
状态下发模块308用于若登录或退出的消息对应终端的优先级比其它终端 的优先级高,则向上述即时通信账号的在线好友账号下发终端登录状态,该终 端登录状态指示上述即时通信账号在对应终端上的登录状态发生变化。具体的, 状态下发模块308可向上述即时通信账号的在线好友账号所登录的即时通信客 户端下发终端登录状态。
终端登录状态包括终端信息和登录状态,该终端信息包括终端类型等,终 端类型有PC终端、手机终端、电视机终端等,登录状态分为在线状态和离线状 态等。
在一个实施例中,上述即时通信多终端登录时登录状态的下发系统还包括 即时通信客户端(图中未示出):用于根据终端登录状态显示即时通信账号的状 态。上述在线好友账号所登录的即时通信客户端根据上述下发的终端登录状态 显示上述即时通信账号的状态。
上述即时通信多终端登录时登录状态的下发系统,接收即时通信账号在一 终端登录或退出的消息,获取该即时通信账号当前登录的其它终端的终端信息, 判断登录或退出的消息对应终端的优先级是否比其它终端的优先级高,优先级 更高时,才向该即时通信账号的在线好友账号下发可指示在对应终端上的登录 状态发生变化的终端登录状态,可减少重复登录状态信息的发送,从而减少即 时通信服务器和即时通信客户端计算机资源的占用,以及节省网络带宽资源。
在一个实施例中,当接收的消息为即时通信账号在一终端登录的消息时, 状态下发模块308下发的终端登录状态包含登录的消息对应终端的终端信息和 上述即时通信账号在该对应终端上的登录状态。
例如,某一即时通信账号在一手机终端上登录,下发的终端登录状态可包 括表示登录的终端类型为手机终端的内容和表示登录状态为在线状态的内容。
本实施例中,当某一即时通信账号一终端登录时,只有该终端的优先级比 该即时通信账号当前登录的其它终端高,才向该即时通信账号的在线好友账号 下发该表示该即时通信账号在该终端上在线的终端登录状态,可减少重复登录 状态信息的发送。
在一个实施例中,终端获取模块304还用于当接收的消息为即时通信账号 在一终端退出的消息时,获取上述即时通信账号当前登录的其它终端中优先级 最高终端;当接收的消息为即时通信账号在一终端退出的消息时,状态下发模 块308下发的终端登录状态包含该优先级最高终端的终端信息和上述即时通信 账号在该优先级最高终端上的登录状态。
终端获取模块304可从获取的其它终端的终端信息中提取终端类型,并查 找终端类型对应的优先级,比较查找到的优先级,从而得到最高优先级对应的 终端类型。
例如,在即时通信客户端可运行的所有终端中,手机终端的优先级最高, PC终端次之。某时刻一即时通信账号在手机终端和PC终端上都处于在线状态, 随后,即时通信账号从手机终端上退出,此时,在该即时通信账号当前登录的 其它终端中PC终端的优先级最高,则下发的终端登录状态可包括表示登录的终 端类型为PC终端的内容和表示登录状态为在线状态的内容。
本实施例中,当即时通信账号在一终端退出时,省略了向在线好友账号发 送可指示该即时通信账号在该退出的终端上的离线状态的第一终端登录状态, 而是直接发送可指示该即时通信账号在优先级最高的其它终端上的在线状态的 第二终端登录状态,而由于只要用户在某一终端在线,其在线好友就可以与其 进行即时通信,至于用户是否从其它终端上退出则关系不大,因此,第二终端 登录状态相对于第一终端登录状态更为有效,本实施例省略第一终端登录状态 的发送,可减少相对无效的消息的发送。
在一个实施例中,若终端获取模块304没有获取到上述即时通信账号当前 登录的其它终端,则状态下发模块308向上述即时通信账号的在线好友账号下 发终端登录状态,该终端登录状态包含登录或退出的消息对应终端的终端信息 和上述通信账号在该对应终端上的登录状态。
如图4所示,在一个实施例中,上述系统还包括存储空间查找模块402和 终端信息读写模块404,其中:
存储空间查找模块402用于查找上述即时通信账号的登录终端信息的存储 空间。存储空间查找模块402可在预先记录的即时通信账号与存储空间地址的 对应关系表中查找上述即时通信账号对应的存储空间地址,进一步根据存储空 间地址查找到对应的存储空间。在一个实施例中,存储空间查找模块402还用 于当消息接收模块302接收到某一即时通信账号在某一终端登录的消息,且在 上述对应关系表中没有查找到该即时通信账号对应的存储空间地址时,申请一 块预设大小的存储空间,并将该即时通信账号与申请的存储空间的地址对应记 录在上述对应关系表中。
终端信息读写模块404用于当消息接收模块302接收的消息为即时通信账 号在一终端登录的消息时,在查找到的存储空间中存储登录的消息对应终端的 终端信息。终端信息包括终端标识、终端类型等。
在一个实施例中,终端信息读写模块404用于当消息接收模块302接收的 消息为即时通信账号在一终端登录的消息时,判断查找到的存储空间中剩余空 间是否足够存储对应终端的终端信息,若是,则在查找到的存储空间中存储对 应终端的终端信息,若否,则申请更大的存储空间,将查找到的存储空间中的 终端信息移存至新申请的存储空间,并将对应终端的终端信息存储至新申请的 存储空间。新申请的存储空间的大小可在原存储空间(查找到的存储空间)的 基础上增加预设值。进一步的,在一个实施例中,将终端信息移存成功后,终 端信息读写模块404可释放查找到的存储空间,即上述即时通信账号的原存储 空间,并在即时通信账号与存储空间地址的对应关系表中记录上述即时通信账 号与新申请的存储空间的地址的对应关系。
进一步的,终端信息读写模块404还用于当消息接收模块302接收的消息 为即时通信账号在一终端退出的消息时,在查找到的存储空间中删除退出的消 息对应终端的终端信息。进一步的,在一个实施例中,终端信息读写模块404 可判断该查找到的存储空间中存储的信息是否为空,若是,则可释放该查找到 的存储空间,并可在即时通信账号与存储空间地址的对应关系表中删除上述即 时通信账号与该查找到的存储空间的地址的对应关系。
本实施例中,终端获取模块304可获取存储空间查找模块402查找到的存储空间中存储的终端信息,该终端信息即为上述即时通信账号当前登录的其它 终端的终端信息。
上述即时通信多终端登录时登录状态的下发系统通过采用变长存储空间来 存储即时通信账号所登录终端的终端信息,相对于采用固定长度的数据结构来 存储即时通信账号,一方面可防止新登录的终端信息覆盖先登录的终端信息, 实现即时通信账号多终端登录时终端信息的信息存储,另一方面,可根据终端 信息的需求的存储空间的变化来申请存储空间,从而可合理地利用存储空间, 提高存储空间的有效利用率。
这篇关于即时通信多终端登录时登录状态的下发方法和系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!