CN101808048B - Web即时通讯方法 - Google Patents

Web即时通讯方法 Download PDF

Info

Publication number
CN101808048B
CN101808048B CN 201010121065 CN201010121065A CN101808048B CN 101808048 B CN101808048 B CN 101808048B CN 201010121065 CN201010121065 CN 201010121065 CN 201010121065 A CN201010121065 A CN 201010121065A CN 101808048 B CN101808048 B CN 101808048B
Authority
CN
China
Prior art keywords
user
instant message
gateway
message
state
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
Application number
CN 201010121065
Other languages
English (en)
Other versions
CN101808048A (zh
Inventor
吴子房
沈敬
陈长虹
汪大海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HANGZHOU JOYPORT TECHNOLOGY Co Ltd
Original Assignee
HANGZHOU JOYPORT TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by HANGZHOU JOYPORT TECHNOLOGY Co Ltd filed Critical HANGZHOU JOYPORT TECHNOLOGY Co Ltd
Priority to CN 201010121065 priority Critical patent/CN101808048B/zh
Publication of CN101808048A publication Critical patent/CN101808048A/zh
Application granted granted Critical
Publication of CN101808048B publication Critical patent/CN101808048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种Web即时通讯方法,包括:(a)第一用户将即时消息发送至服务器;(b)如果第二用户已登录,则将所述的即时消息转发至第二用户所登录的第二网关,如果第二用户未登录,则将该即时消息以离线消息的方式保存至数据库中;(c)第二用户由未登录状态改变为登录状态时,离线消息通过第二网关返回至第二用户的客户端;第二用户处于登录状态时,第二用户的客户端访问第二网关来获取即时消息;(d)如果取到即时消息,则显示给第二用户,否则返回步骤(c),直至第二用户离线。本发明Web即时通讯方法通过对用户状态信息的更新,解决了用户在线状态管理延迟性的情况,大幅降低在消息发送和接收上出现的信息丢失、延迟情况。

Description

Web即时通讯方法
技术领域
本发明涉及互联网Web即时通讯技术。
技术背景
如今绝大多数即时通讯技术都是基于应用程序的,通常使用tcp/ip协议,使用时必须安装相应的应用程序软件,且容易受到防火墙、操作系统等限制。基于web的即时通讯方法采用http协议,则具有跨操作系统、无须下载安装软件立即就能使用、不受防火墙影响(80端口:一般防火墙不做任何限制)等优势。现有基于web的即时通讯技术大致有三种:
1、基于浏览器插件(ActiveX),相对稳定,但需要用户允许并下载安装,容易受安全软件的拦截,同时受浏览器的限制,需要开发不同浏览器的版本。
2、基于Flash技术,如Yahoo Web Messager、Google Talk Gadget
3、基于HTTP技术,如MSN Web Messager、Web QQ。
但是现有基于web的即时通讯技术也存在以下几个问题:
基于web的即时通讯技术由于采方法用http协议,而http的无连接性、无状态性使得即时通讯的用户在线状态管理比较困难,具有较大的延迟性。
另外基于web的即时通讯技术存在单向性:只有客户端(web浏览器)主动去联系服务端,而服务端无法主动去联系某个用户。故消息的发送与接收会出现信息可能会丢失、延迟的情况。
发明内容
本发明提供一种在基于网站的系统中处理不同用户之间即时通讯的方法,解决了用户在线状态管理延迟性的情况,大幅降低在消息发送和接收上出现的信息丢失、延迟情况。
一种Web即时通讯方法,包括:
(a)消息发送的步骤;
第一用户通过第一网关将欲发送给第二用户的即时消息发送至服务器;
第一用户登录后,选择第二用户向其发送即时消息,浏览器会在后台首先会校验即时消息是否符合发送规则(例如消息内容过滤等),如果不符合则提示第一用户,同时停止即时消息的发送。如果符合,则开启一个异步即时消息线程,请求第一网关发送即时消息。
即时消息包括目标用户唯一识别码、来源用户唯一识别码以及数据内容,数据内容包括即时聊天内容以及其他附加信息。网关在接收到请求后,首先会校验数据的合法性,完整性,然后把即时消息发送到Web IM服务端(即服务器)。
(b)消息分发的步骤;
所述的服务器将接收到的即时消息保存至数据库中,服务器判断第二用户的状态信息,如果第二用户已登录,则将所述的即时消息转发至第二用户所登录的第二网关,如果第二用户未登录,则将该即时消息以离线消息的方式保存至数据库中;
步骤(b)中Web IM服务端接收到网关转发的即时消息,从中提取出来源用户唯一识别码、目标用户唯一识别码和数据内容;把这些数据保存至数据库中;检查目标用户(第二用户)的状态信息,如果已登录,则取出其所登录网关地址,把即时消息转发至该登录网关,否则该即时消息发送结束。
(c)消息接收的步骤;
第二用户由未登录状态改变为登录状态时,所述的服务器将数据库中属于第二用户的离线消息通过第二网关返回至第二用户的客户端,再显示给第二用户;
第二用户处于登录状态时,第二用户的客户端开启一个线程访问第二用户所登录的第二网关;
若第二网关没有接收到发向第二用户的即时消息,则该线程会被挂起,直至达到预定的挂起时间后该线程返回;
若第二网关接收到发向第二用户的即时消息,则该线程将即时消息返回给第二用户的客户端;
步骤(c)中包含两种情况,离线消息的接收和即时消息的接收,若第一用户发送即时消息时,恰好第二用户没有登录,那么在随后第二用户是,就会接收到离线消息。
若第一用户发送即时消息时,恰好第二用户已经登录,第二用户获取即时消息时,是其客户端后台会始终开启一个线程去访问网关获取即时消息。如果没有即时消息,则该线程会被网关挂起,进入阻塞状态,直至超过挂起时间,如果有属于第二用户的即时消息由Web IM服务端转发给当前网关。这时线程会被网关返回,同时将即时消息发送到第二用户的客户端。
(d)消息处理的步骤;
第二用户的客户端判断当前返回的线程是否已取到即时消息,
如果未取到即时消息,则返回步骤(c),直至第二用户离线;
如果取到即时消息,则将取到的即时消息显示给第二用户,然后返回步骤(c),直至第二用户离线。
步骤(d)中客户端将会判断当前返回线程是否已取到即时消息,如果未取到,则重新开启一个线程去执行消息接收流程,同时该线程则结束。如果有取到即时消息,则进行即时消息处理,最终把消息呈现给第二用户,然后重新开启一个线程去执行消息接收。
本发明中所述的第一网关、第二网关可以是不同的网关也可以是同一个网关,即进行通讯的两个用户可以分别登录不同的网关,也可以是登录在同一个网关上。
本发明所述的第一用户泛指通讯时发送消息的一方,第二用户泛指通讯时接收消息的一方。
步骤(b)中服务器判断第二用户的状态信息的步骤如下:
服务器以固定的频率(根据服务器的负荷量可以对频率进行调整)向所有网关查询,得到不断更新的第二用户的状态信息;服务器向所有网关查询得到第二用户的状态信息时,即可以是直接查询结果,也可以是对查询结果进行判断和处理后得到的状态信息。
第二用户的状态信息有如下四种情况:
第二用户已登录,且为新登录的用户;
第二用户已登录,但所登录的网关发生改变;
第二用户已登录,且状态信息保持不变;
第二用户处于离线状态。
当第二用户处于离线状态的时间达到预定值时,将第二用户的状态信息清理出网关系统缓存,且不再对第二用户的状态信息进行更新。
一般情况第二用户的在线状态有三种,可以是“在线”、“隐身”或“离线”。
在线:用户已经在系统中登录,其他用户可以看到其在线,可以接收到即时消息
隐身:用户已经在系统中登录,但是其他用户不能看见其在线状态,可以接收到即时消息
离线:用户未在系统中登录,不能接收到即时消息。
本发明步骤(b)以及步骤(c)中的,第二用户已登录时,均是可以接收即时消息的状态,也就是说“在线”、“隐身”均可以认为是已登录。
本发明方法在运行的过程中会出现不可抗拒的异常,比如网络异常、服务端异常等,本发明也提供了处理方法。
服务端异常处理:为了能让Web IM服务器能在最短的时间内恢复到异常出现之前,服务端会每隔固定时间会生成一个“服务端运行状态片断备份”,并将该“服务端运行状态片断备份”储存在服务器中,主要包括其网关信息、用户状态信息。异常发生时,会首先记录异常信息,以便帮助开发人员对异常进行还原修复;异常发生后会首先检索最近次保存的片断,快速的恢复到最近的服务状态。
网络异常处理:当网关在网络通讯异常的情况,会出现无法把消息发送到网关、网关无法把消息提交到Web IM服务端、服务端无法更新用户在线状态等情况,系统会忽略,同时会不断尝试与其通讯。
利用本发明即时通讯方法,可以扩展出群信息聊天,系统即时公告等。
本发明Web即时通讯方法通过对用户状态信息的更新,解决了用户在线状态管理延迟性的情况,大幅降低在消息发送和接收上出现的信息丢失、延迟情况。
附图说明
图1为本发明Web即时通讯方法运行环境的结构框图;
图2为本发明Web即时通讯方法的流程图;
图3为本发明Web即时通讯方法中消息接收步骤的流程图;
图4为本发明Web即时通讯方法中进行服务端异常处理的流程图。
具体实施方式
参见图1,本发明Web即时通讯方法的运行采用服务器推技术,用户在使用时无须安装任何浏览器插件;由于采用的技术是基于HTTP协议,可以轻松穿越防火墙的限制,适用于任何操作系统;所有即时消息的发送和接收都采用异步的方式(AJAX方式),提高用户体验,减少交互量。要使用该系统,用户必须拥有一个唯一识别码。
图1中若干个用户的客户端通过网关接入服务器,用户与网关之间,网关与服务器之间可进行消息的发送、接收,服务器通过对网关的访问可以得到用户的状态。图中第一用户为即时消息的发送方,第一用户通过第一网关与服务器相连,以第二用户为即时消息的接收方,第二用户通过第二网关与服务器相连。
参见图2、3,本发明Web即时通讯方法包括:
(a)消息发送的步骤;
第一用户通过第一网关将欲发送给第二用户的即时消息发送至服务器;浏览器会在后台首先会校验即时消息是否符合发送规则,如果不符合则提示第一用户,同时停止即时消息的发送。如果符合,则开启一个异步即时消息线程,请求第一网关发送即时消息。
即时消息包括目标用户唯一识别码、来源用户唯一识别码以及数据内容,数据内容包括即时聊天内容以及其他附加信息。网关在接收到请求后,首先会校验数据的合法性,完整性,然后把即时消息发送到服务器。
(b)消息分发的步骤;
服务器接收到第一网关转发的即时消息,从中提取出来源用户唯一识别码、目标用户唯一识别码和数据内容;把这些数据保存至数据库中可以作为聊天记录。
服务器需要判断第二用户的状态信息,如果第二用户已登录,则将所述的即时消息转发至第二用户所登录的第二网关,如果第二用户未登录,则将该即时消息以离线消息的方式保存至数据库中;
判断第二用户的状态信息时,服务器每隔5秒钟(根据服务器的负荷量可以对频率进行调整)向所有网关查询,得到不断更新的第二用户的状态信息;
第二用户的状态信息有如下四种情况:
第二用户已登录,且为新登录的用户;
第二用户已登录,但所登录的网关发生改变;
第二用户已登录,且状态信息保持不变;
第二用户处于离线状态。
当第二用户处于离线状态的时间达到预定值时,将第二用户的状态信息清理出网关系统缓存,且不再对第二用户的状态信息进行更新。可以减小网关及服务器的负荷量。
为了解决了用户在线状态管理延迟性的情况,服务器会不断地刷新所有用户的状态信息。
(c)消息接收的步骤;
步骤(c)中包含两种情况,离线消息的接收和即时消息的接收,若第一用户发送即时消息时,恰好第二用户没有登录,那么在第二用户由未登录状态改变为登录状态时,所述的服务器将数据库中属于第二用户的离线消息通过第二网关返回至第二用户的客户端,再显示给第二用户;
若第一用户发送即时消息时,恰好第二用户已经登录,第二用户获取即时消息时,是第二用户的客户端开启一个线程访问第二用户所登录的第二网关;
若第二网关没有接收到发向第二用户的即时消息,则该线程会被挂起,直至达到预定的挂起时间后该线程返回;
若第二网关接收到发向第二用户的即时消息,则该线程将即时消息返回给第二用户的客户端;
(d)消息处理的步骤;
第二用户的客户端判断当前返回的线程是否已取到即时消息,
如果未取到即时消息,则返回步骤(c),直至第二用户离线;
如果取到即时消息,则将取到的即时消息显示给第二用户,然后返回步骤(c),直至第二用户离线。
也就是说,只要第二用户处于登录状态,那么始终就会去执行步骤(c)、步骤(d)不断地获取即时消息。
同理,当第二用户向第一用户发送即时消息时,也是进行相应的处理,从未实现第一用户与第二用户之间的即时通讯。
参见图4,为了能让Web IM服务器能在最短的时间内恢复到异常出现之前,服务端会每隔固定时间会生成一个“服务端运行状态片断备份”,并将该“服务端运行状态片断备份”储存在服务器中,主要包括其网关信息、用户状态信息。异常发生时,会首先记录异常信息,以便帮助开发人员对异常进行还原修复;异常发生后会首先检索最近次保存的片断,快速的恢复到最近的服务状态。

Claims (3)

1.一种Web即时通讯方法,其特征在于,包括:
(a)消息发送的步骤;
第一用户通过第一网关将欲发送给第二用户的即时消息发送至服务器;
其中,浏览器会在后台首先校验即时消息是否符合发送规则,如果不符合,则提示第一用户,同时停止即时消息的发送;如果符合,则开启一个异步即时消息线程,请求第一网关发送即时消息;第一网关在接收到请求后,首先会校验即时消息的数据合法性和完整性,然后把即时消息发送至服务器;
所述的即时消息包括目标用户唯一识别码、来源用户唯一识别码以及数据内容,所述的数据内容包括即时聊天内容以及其他附加信息;
(b)消息分发的步骤;
所述的服务器从接收到的即时消息中提取出来源用户唯一识别码、目标用户唯一识别码和数据内容,并将这些数据保存至数据库中;服务器判断第二用户的状态信息,如果第二用户已登录,则将所述的即时消息转发至第二用户所登录的第二网关,如果第二用户未登录,则将该即时消息以离线消息的方式保存至数据库中;
其中,判断第二用户的状态信息时,服务器以固定频率向所有网关查询,得到不断更新的第二用户的状态信息;当第二用户处于离线状态的时间达到预定值时,将第二用户的状态信息清理出网关系统缓存,且不再对第二用户的状态信息进行更新;
(c)消息接收的步骤;
第二用户由未登录状态改变为登录状态时,所述的服务器将数据库中属于第二用户的离线消息通过第二网关返回至第二用户的客户端,再显示给第二用户;
第二用户处于登录状态时,第二用户的客户端开启一个线程访问第二用户所登录的第二网关;若第二网关没有接收到发向第二用户的即时消息,则该线程会被挂起,直至达到预定的挂起时间后该线程返回;若第二网关接收到发向第二用户的即时消息,则该线程将即时消息返回给第二用户的客户端;
(d)消息处理的步骤;
第二用户的客户端判断当前返回的线程是否已取到即时消息,
如果未取到即时消息,则返回步骤(c),直至第二用户离线;
如果取到即时消息,则将取到的即时消息显示给第二用户,然后返回步骤(c),直至第二用户离线。
2.如权利要求1所述的Web即时通讯方法,其特征在于,所述的第一网关、第二网关是不同的网关或者是同一个网关。
3.如权利要求1所述的Web即时通讯方法,其特征在于,所述的第二用户的状态信息为:
第二用户已登录,且为新登录的用户;
或第二用户已登录,但所登录的网关发生改变;
或第二用户已登录,且状态信息保持不变;
或第二用户处于离线状态。
CN 201010121065 2010-03-10 2010-03-10 Web即时通讯方法 Active CN101808048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010121065 CN101808048B (zh) 2010-03-10 2010-03-10 Web即时通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010121065 CN101808048B (zh) 2010-03-10 2010-03-10 Web即时通讯方法

Publications (2)

Publication Number Publication Date
CN101808048A CN101808048A (zh) 2010-08-18
CN101808048B true CN101808048B (zh) 2012-12-19

Family

ID=42609670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010121065 Active CN101808048B (zh) 2010-03-10 2010-03-10 Web即时通讯方法

Country Status (1)

Country Link
CN (1) CN101808048B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045266A (zh) * 2009-10-10 2011-05-04 中兴通讯股份有限公司 一种支持数据报文主动推送能力的实现方法及系统
CN102685209B (zh) * 2012-04-01 2016-02-03 百度在线网络技术(北京)有限公司 一种协助用户设备收发即时消息的方法、装置和设备
CN103312593B (zh) * 2013-06-06 2016-04-27 青岛海信传媒网络技术有限公司 一种消息分发系统及方法
CN104270335B (zh) * 2014-06-26 2018-10-19 湖北微安交通安全研究院有限公司 基于浏览器的多客户端之间的消息互通方法
CN105072019A (zh) * 2015-07-24 2015-11-18 北京元心科技有限公司 即时通信的消息的处理方法及处理系统
CN107872529A (zh) * 2017-11-21 2018-04-03 桂林爱家购股份有限公司 一种web通讯系统和方法
CN108600330A (zh) * 2018-03-29 2018-09-28 努比亚技术有限公司 离线消息推送方法、设备及计算机可读存储介质
CN109218422A (zh) * 2018-09-12 2019-01-15 上海庆科信息技术有限公司 一种信息交互的方法、装置、设备以及存储介质
CN110505146A (zh) * 2019-08-23 2019-11-26 人立方智能科技有限公司 一种应用于招聘系统的即时通讯方法及系统
CN112769876B (zh) * 2019-10-21 2023-04-07 浙江宇视科技有限公司 一种设备通道信息获取方法、装置、设备和介质
CN110855785B (zh) * 2019-11-17 2022-08-09 广州荔支网络技术有限公司 一种数据处理的方法及装置
CN113904953B (zh) * 2021-12-09 2022-04-08 云丁网络技术(北京)有限公司 通信设备的离线检测方法、装置和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083534A (zh) * 2006-06-02 2007-12-05 阿里巴巴公司 一种通过浏览器实现即时通信的方法及系统
CN101299731A (zh) * 2008-05-09 2008-11-05 国网信息通信有限公司 基于Web的即时通讯方法及装置
CN101459621A (zh) * 2007-12-12 2009-06-17 北京亿企通信息技术有限公司 一种企业即时通信的方法
CN101645855A (zh) * 2009-07-13 2010-02-10 北京亿企通信息技术有限公司 一种在企业即时通讯中对Web平台事件提醒的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083534A (zh) * 2006-06-02 2007-12-05 阿里巴巴公司 一种通过浏览器实现即时通信的方法及系统
CN101459621A (zh) * 2007-12-12 2009-06-17 北京亿企通信息技术有限公司 一种企业即时通信的方法
CN101299731A (zh) * 2008-05-09 2008-11-05 国网信息通信有限公司 基于Web的即时通讯方法及装置
CN101645855A (zh) * 2009-07-13 2010-02-10 北京亿企通信息技术有限公司 一种在企业即时通讯中对Web平台事件提醒的系统和方法

Also Published As

Publication number Publication date
CN101808048A (zh) 2010-08-18

Similar Documents

Publication Publication Date Title
CN101808048B (zh) Web即时通讯方法
US11240194B2 (en) Instant messaging interoperability between disparate service providers
JP5327852B2 (ja) スケーラブルなピア・グループを使用して通信を最適化すること
CN101711386B (zh) 在外部和/或本地电子邮件服务器和/或无线设备之间同步电子邮件消息
CN1890942B (zh) 重定向对万维网服务的客户端请求的方法
US8732237B2 (en) Interaction-based update delivery for user generated content
US20050198545A1 (en) Automatic user device presence registration system
CN101815039A (zh) 好友列表的被动个性化
CN101702943A (zh) 用于高速缓存无线数据服务中的电子邮件消息的装置和方法
CN101689169B (zh) 分布式操作系统中外部硬件装置的管理
CN101379785A (zh) 消息历史记录显示系统和方法
JP2013522736A (ja) ユニバーサルリソースロケータを含むメッセージを提供するための方法およびシステム
CN101582856A (zh) 一种门户服务器与宽带接入设备的会话建立方法及其系统
JP2011171867A (ja) メールシステムにおけるデータストアサーバのデータ格納方法およびメール中継方法
CN102111347A (zh) 融合通信系统中基于多协议即时消息的处理方法和系统
EP4035336A1 (en) System and method for improving network performance when using secure dns access schemes
WO2007081351A1 (en) System and method for conversation and callback based on web service addressing and asynchronous request response
TW200425691A (en) Time-to-disconnect enforcement when communicating with wireless devices that have transient network addresses
US20100094933A1 (en) System and Method for Generating Exception Delay Messages when Messages are Delayed
CN113329042A (zh) 消息处理方法及系统、车联网系统、服务器、电子设备
CN102761574B (zh) 一种通过永远在线平台实现点对点业务的方法及系统
US20120278409A1 (en) Mail system
US20080212766A1 (en) Stateless gateways having remote dialog store
CN1829203B (zh) 用于调节可扩展性点对消息的访问的系统和方法
US20170286562A1 (en) Information processing apparatus, data providing system, and data providing method

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