为基于浏览器的应用提供即时通信功能的方法与系统的制作方法

文档序号:6573332阅读:154来源:国知局
专利名称:为基于浏览器的应用提供即时通信功能的方法与系统的制作方法
技术领域
本发明涉及电通讯技术领域,特别是涉及为基于浏览器的应用提供即时通信功能的方法与系统,用于实现使用所述的基于浏览器应用的用户之间,所述的应用与其用户之间的消息传递。
背景技术
典型的基于浏览器的应用包括Web服务器、数据库服务器、应用服务器和运行在客户端的浏览器。其中,运行在客户端的浏览器通过HTTP或HTTPS协议(以下提到HTTP协议,如无特别说明,都是指HTTP或HTTPS协议)与Web服务器连接,进行数据交换,由浏览器进行界面的展现,构成客户端;Web服务器与数据库服务器、应用服务器连接,共同构成基于浏览器应用的服务器端;其中,应用服务器与数据库服务在具体的某一系统中可能部分的或全部不出现;Web服务器、数据库服务器、应用服务器可以物理的部署在同一台或若干计算设备上。基于浏览器的应用已经成为互连网的基本应用形态。
网络即时通信服务(IM,Instant Messenger)是一种基于网络的通信服务。IM允许用户通过网络或网络的集合,诸如因特网,来与另一个IM服务用户几乎实时的发送和接受消息。一般的,IM服务是有诸如腾讯、Microsoft等公司提供的。连接至因特网的计算机可以使用客户机应用程序访问IM服务。客户机应用程序可以被实现为本地客户端或基于浏览器的客户端。本地客户端是存储在计算机上并允许客户访问IM的界面的程序。基于浏览器的客户端一般是由Web服务器提供的程序,从网络服务器装载的界面允许用户访问IM服务。IM服务被提供给IM服务客户,IM服务客户包括对IM服务拥有帐户的实体,包括但不限于自然人、计算机程序和某种设备。
为使用IM,用户提供包括用户标识符、口令和通信程序联系人列表的帐户信息来建立帐户。随后对服务的登录要求用户提供用身份信息,一般的包括用户标识符和口令。用户身份信息也可以是用户名、密码和其他信息的组合或者使用用户名、密码和可选的其他信息进行某种数学运算的结果;密码包括但不限于用户实际输入的口令、指纹眼纹等人体特征以及其他用于确定用户身份的硬件设备中包含的唯一的可传递的电数据。在使用用户身份信息确认了登录信息后,特定客户端(本地的或基于浏览器的)显示用户的登录状态、消息通信程序联系人列表和每个联系人存在的界面。登录状态是对实体在线还是离线的状态指示。在另一实施例中,登录状态可以是拥有状态“忙”、“离开”、“外出就餐”或其他状态。如果用户或用户消息通信程序联系人列表中的联系人等实体登录消息通信服务器,那么该实体的登录状态是“在线”。否则,该实体的登录状态是“离线”或“实体不可达”。
用户可以从显示在IM界面中的消息通信程序联系人列表中选择联系人来启动对话。一旦被选中,与每一对话成员相关联的客户机应用程序提供对话窗口。在某些IM系统中与对话相关联的客户机应用程序接受彼此的直接联系人的信息还提供它们之间的直接通信。在其他IM服务中,每个对话成员的客户机应用程序通过IM系统互相连接。当对话成员发送消息时,IM系统接收该消息、找出接收实体的位置并将该消息路由给特定计算机。
由于即时通信能够提供近实时的消息传递,许多基于浏览器的应用也在系统中提供了近似即时通信的功能,如电子公告板中的私人短信,办公自动化系统中的通知提醒等。但是,所述的种种应用,其即时通信的实现前提是用户必须一直打开浏览器窗口显示某个页面,这会影响用户日常的工作效率;而且,由于其采用轮询的方式,收发消息有较长的时间延迟,也不利于消息的近实时处理。因此,如果能够为基于浏览器的应用提供传统意义上的即时通信功能,将增加现有基于浏览器应用的实用性。

发明内容
本发明的目的是为基于浏览器的应用提供即时通信功能,使得所述的应用可以近实时的将特定的消息发送到特定的用户或用户集合;使得所述的应用的用户之间可以进行近实时的消息传递。
本发明的目的是通过以下的技术手段实现的本发明公开了一种为基于浏览器的应用提供即时通信功能的方法,通信对方为所述的应用系统或使用所述应用系统的用户,包括如下步骤A、所述基于浏览器的应用与即时通信服务器之间互相提供消息接口;B、启动即时通信客户端,所述的客户端通过即时通信服务器以及即时通信服务器与所述的应用系统之间的消息接口,访问所述的基于浏览器的应用;C、通过即时通信客户端发送和接收即时会话消息,实现与通信对方的即时通信。
优选的,在步骤A,所述的应用与即时通信服务器之间提供的接口中,所述的应用提供a1、向所述应用中特定用户或用户集合发送消息的接口;a2、获取所述应用中特定用户未查看的消息或消息集合的接口。即时通信服务器提供b1、向特定用户或用户集合发送消息的接口;优选的,在步骤A,所述的应用与即时通信服务器之间提供的接口中,所述的应用提供a3、对用户进行身份认证的接口;a4、查询特定用户在线状态的接口;或a5、设置特定用户在线状态的接口;或a6、a4与a5的复合;a7、获取特定用户在所述应用系统中联系人列表的接口;a8、获取和设置特定用户其他描述性信息的接口;即时通信服务器提供b2、对用户进行身份认证的接口;b3、查询特定用户在线状态的接口;或b4、设置特定用户在线状态的接口;或b5、b2与b3的复合;b6、获取特定用户未查看的消息或消息集合的接口。
其中,接口a3和接口b1只存在一个即可,也可是由第三方提供对用户身份的认证,如LDAP服务器等。
所述的联系人列表包括允许与之进行即时通信会话的应用系统用户的集合和不允许与之进行即时通信会话的应用系统用户的集合。
优选的,在步骤A中,所述的应用提供给即时通信服务器的接口可以通过HTTP或HTTPS协议实现;即时通信服务器提供给应用的接口可以是TCP或UDP的Socket连接;优选的,在步骤A中,即时通信服务器与应用系统之间,可以通过连接代理服务器连接;其中连接代理服务器与即时通信服务器之间采用TCP长连接,应用系统与连接代理服务器采用TCP或UDP的短连接。
优选的,即时通信服务器接收到来自应用系统的请求时,可以I、在当前连接返回请求的回应(数据或错误信息);可以II、通过HTTP或HTTPS协议或其他即时通信服务器与应用系统通信的方式将错误信息回传给应用系统;或者同时实现I和II两种方式。
优选的,在步骤B中,还可以包括对用户身份进行认证;即时通信服务器可以通过应用系统提供的认证接口a3,对用户身份进行认证;即时通信服务器可以通过共享认证数据,如直接访问所述应用的记录用户身份认证信息的数据表、LDAP数据或等价的方法,对用户身份进行认证。
优选的,在步骤B中,所述的即时通信客户端可以是存储在用户计算设备上的应用程序。
优选的,在步骤B中,所述的即时通信客户端可以运行在浏览器中,是基于浏览器的应用。
优选的,在步骤B中,对于所述应用系统中特定用户的属性,包括联系人列表和其他描述性的属性,在即时通信服务器中保存快取副本(cache),当即时通信服务器中保存的副本的时间戳早于应用系统中时间的用户信息项的时间戳时,需要从应用系统重新获取相应的信息块。
优选的,在步骤C中,如果通信对方在线,则即时通信服务器将收到的消息会话转发至通信对方;如果通信对方离线,则即时通信服务器通知所述的应用,由所述的应用决定由即时通信服务器或应用自身存储离线消息,当通信对方上线时,再转发该会话消息给通信对方。
本发明还提供了一种用于基于浏览器应用的即时通信系统,包括即时通信服务器、基于浏览器的应用系统、即时通信客户端以及即时通信服务器与应用系统的通信模块,该模块连接即时通信系统与基于浏览器的应用系统,即时通信客户端通过即时通信服务器与所述的通信模块与应用系统和其他使用所述应用系统的用户近实时的交换会话消息。
由以上技术方案可以得出,与现有技术方案相比,本发明有如下优点采用本发明所述的方法和系统,基于浏览器的应用系统不需要进行大量的改动,在某些情况下,应用系统甚至不需要进行任何改动,因此,采用本发明,可以有效的降低基于浏览器的应用系统支持即时通信功能所需要的开发成本;采用本发明所述的方法和系统,系统与用户之间、用户与用户之间进行的会话消息可以以近实时进行交换,较之应用系统采用数据库传递,通过定期查询的方式传递消息,有效的降低了消息传递对系统的负载,提高了消息交换速度。


下面结合附图和具体实施方式
对本发明作进一步详细说明。
图1为根据本发明的一实施方式的即时通信系统的框架2A为根据本发明的一个即时通信系统与应用系统Web服务器通信的实施例图2B为根据本发明的一个即时通信系统与应用系统应用服务器通信的实施例图3示出了应用系统向即时通信服务器发送数据进行处理的一个实施例图4示出了用于用户使用即时通信客户端登录即时通信服务器的一个实施例图5A示出了从应用系统向即时通信客户端发送消息的一个实施例图5B示出了从即时通信客户端发送信息的一个实施例图6示出了用于处理离线消息的一个实施例图7示出了获取和操作即时通信实体联系人列表和用户其他描述性信息的一个实施例具体实施方式
下面根据附图和实施例对本发明作进一步说明请参阅图1,本发明为基于浏览器的应用提供即时通信功能的系统包括即时通信客户端101、即时通信服务器120、应用系统Web服务器130、应用系统应用服务器140、应用系统数据库服务器150以及即时通信连接管理服务器160。
即时通信客户端101可以安装于个人电脑或移动计算设备上,通过有线或无线的方式连接于网络100。即时通信服务器120与应用系统Web服务器130也同样连接于网络100。应用系统应用服务器140、应用系统数据库服务器160则与应用系统Web服务器130建立连接;即时通信连接管理服务器160与即时通信服务器120建立连接。
参考图2A,在一个具体实施例中,即时通信连接管理服务器160与即时通信服务器120建立连接,即时通信服务器120通过HTTP或HTTPS协议与应用系统Web服务器130交换数据;应用系统Web服务器130通过Socket连接与即时通信连接管理服务器160交换数据。
参考图2B,在一个具体实施例中,即时通信连接管理服务器160与应用系统应用服务器140建立连接,应用系统应用服务器140与即时通信系统通过TCP连接交换数据。
其中,应用系统中与即时通信系统交换数据的模块主要负责相应来自即时通信服务器的用户身份的安全验证和用户请求的逻辑处理,并能根据应用系统中用户身份的不同提供差异化的服务。即时通信系统主要负责实现即时通信功能、对于应用系统中和即时通信相关的数据进行缓存以及记录用户的在线状态。
参考图3,由于应用系统为基于浏览器的架构,导致当浏览器异常中断,或用户手工要求停止时,对应的运行于Web服务器的进程可能会被强行中止。因此,当所述的应用系统向即时通信系统请求数据时,需要额外的步骤以保证所述的应用系统可以收到即时通信系统对所述的请求的反馈。在一个具体实施例中,流程如下步骤301,应用系统向即时通信系统请求数据,所述的数据可以包括用户的在线状态、对应用户的离线消息等,每一个请求有唯一的id;转入步骤302,即时通信系统根据收到的请求内容进行处理;转入步骤303,根据请求对返回数据的处理要求,即时通信系统进行处理,其中,对返回数据处理的要求可以是a,利用应用系统已经建立连接返回数据b,调用应用系统的提供给即时通信服务器的调用接口,返回数据以及数据对应的请求或请求编号。
c,要求a与要求b的复合。
典型的,对于特定用户状态的查询和设定,可能只需要返回数据符合a类要求即可。对于特定用户存储在即时通信服务器上的离线消息,则可能需要达到c类要求。
参考图4,用户登录即时通信系统的流程如下步骤401,系统显示登录界面;转入步骤402,用户提供登录所需的用户名及口令;转入步骤403即时通讯系统将从客户端收到的用户登录的请求转发到应用系统;转入步骤404应用系统确定该实体是否能够使用即时通讯功能,如是,转入步骤405,返回成功的消息给即时通讯客户端,如否,转入步骤406,通知即时通讯客户端登录失败。
如果用户提供的身份认证信息能够匹配,则通知即时通信客户端登录成功,其所代表的实体的登录状态设为“在线”。
在一个具体实施例中,用户可能额外的要求认证码或其他类似信息,以保证执行登录过程的为一自然人。
在一个具体实施例中,即时通信系统维护用户信息和联系人列表的缓存,根据即时通信协议,将用户信息和联系人列表发送到即时通信客户端;当即时通信系统维护的缓存早于时间的用户信息和联系人列表信息,则标记对应的缓存记录失效,重新从应用服务器获取新的用户信息和联系人列表。
在一个具体实施例中,即时通信系统将保存的离线消息,当特定的应用系统实体登入系统后,即时通信服务器将保持的通讯目标为所述的实体的消息传递给所述的实体。所述的离线消息可以存储在即时通信系统,也可以存储在应用系统。
参照图5A,描述了应用系统向即时通讯客户端发送信息的基本流程。其过程如下当出现以下可能的情况(1)应用系统或应用系统的部分需要向应用系统用户发送消息;(2)使用应用系统的用户向其他用户发起电数据交换请求;时,会启动步骤501登录应用系统的实体请求发送消息。通过步骤501,应用系统502调用即时通信系统503提供的调用接口将等待发送的消息传递给即时通信502,进入步骤503。步骤503判断消息目标实体是否以登录即时通讯系统,如是,转入步骤504,将待发送的消息发送给通信目标实体;如否,则转入步骤505,通知应用系统通信目标实体“离线”(不可达)。应用系统502收即时通讯系统503的目标不可达的消息后,转入步骤506离线消息处理流程。可选的路径,当即时通讯服务不可用时,直接从步骤502转入步骤505。
参照图5B,描述登录应用系统的实体从即时通讯客户端接收消息的基本流程。由于所述的应用系统并非为即时通讯设计的,因此即时通讯客户端向从应用系统登录的客户端发送消息,并不能保证能得到从应用系统登录的客户端的即时的回应。
其具体过程如下步骤507,通信实体通过即时通信客户端向即时通信系统发起即时通信请求,进入步骤503;步骤503判断消息目标实体是否以登录即时通讯系统,如是,转入步骤504,将待发送的消息发送给通信目标实体;如否,则转入步骤505,通知应用系统通信目标实体“离线”(不可达)。
应用系统根据收到的消息的具体情况,有选择的对离线消息进行处理。
在一个具体实施例中,即时通信系统可以不进行步骤503所述的判断,而直接交给应用系统处理,应用系统通过其与即时通信系统的接口再将前述的消息传递给即时通信服务器,由即时通信服务器发送给通信对方。
需要注意,这里所说的“离线”,并非实际应用系统显示给其用户的在线或离线等用户状态,而是指特定用户不可通过即时通信系统进行即时通信会话的某种状态;例如,当某用户通过应用系统原有的界面登陆进入系统,则其状态为在线,而实际的消息处理流程为处理离线消息。
参照图6,描述了应用系统处理离线消息的基本流程。
其具体过程如下步骤601,应用系统从即时通讯服务器或应用系统的其他模块收到待处理的离线信息或离线信息的集合。转入步骤602,确定离线消息是否和应用系统有关,如是,转入步骤603相应的应用的处理流程。如否,转入步骤604对离线消息进行简单存储。
在一个具体实施例中,离线消息由即时通信服务器存储。
在一个具体实施例中,离线消息由应用系统存储。
在一个具体实施例中,应用系统可以根据离线消息在应用系统中定义的优先级不同进行有区别的处理,应用系统可以丢弃离线消息。
在一个具体实施例中,应用系统可以通过短信网关或语音电话向对应的通信目标绑定的联系方式上发送短信或进行语音呼叫。
至此,用户以及可以开始使用即时通信功能。
进一步的,即时通信功能还需要提供联系人管理,个人信息管理,以及用户登录状态及其联系人登录状态的管理。
其中即时通讯支持中的联系人管理、用户个人信息的管理,其本质上为将即时通信系统系统中的增加联系人、删除联系人、修改联系人信息、阻止联系人、修改个人信息以及可选的,建立联系人分组、修改联系人分组信息、删除联系人分组等功能映射到应用系统中的等价操作上,对于部分应用系统不支持的功能,应用系统可以像即时通信返回功能不可用的错误。
参考图7,其具体流程如下步骤701即时通讯客户端请求功能A,其中功能A可以为所述的功能中的一项或若干项的组合;转入步骤702,即时通讯服务器收到用户请求,将其转发到应用系统。转入步骤703,应用系统检测能否将用户请求映射为应用系统的某个操作B,如可以,则转入步骤704,执行B操作,如成功执行,转入705通知即时通讯客户端操作成功,如失败转入步骤706,通知客户端操作失败;如对应特性应用系统不支持,则转入步骤707,通知客户端特性不支持。
在一个具体的实施例中,即时通信服务器可以缓存收到的用户请求类型,对于不支持的功能,可以直接进入步骤707。
用户登录状态及其联系人登录状态管理由即时通信服务器管理用户的登录状态,应用系统向即时通信服务器查询特定用户的在线状态。当用户通过登入即时通信客户端登入系统时,其登录状态为“在线”,即时通信服务器通过应用系统提供的接口a5通知应用系统所述的应用已登录;在一个实施例中,所述的接口a5为HTTP或HTTPS协议实现的webservice或网页。
当用户通过浏览器登录应用系统时,应用系统通过即时通信服务器提供的接口b3通知即时通信系统系统所述的用户已登陆。
当所述的用户通过即时通信客户端改变其在线状态时(包括但不限于登出系统),即时通信系统需要将收到的用户在线状态的修改通过接口a5通知应用系统;当所述的用户通过应用系统的浏览器界面改变其在线状态时(包括但不限于登出系统),应用系统通过接口b3通知即时通信系统。
在一个实施例中,当所述的用户A存在于其他用户B的联系人列表中时,并且用户A与用户B都登录到即时通信服务器上时,当用户A在线状态的变化,用户B将得到用户A状态变化的通知。
在一种实施例中,通过应用系统而导致用户登录状态为“在线”的情况,即时通信服务器可设置标记,以便于与通过即时通通信客户端登录而导致其登录状态为“在线”的相区分。
本发明以上详细描述是为说明和描述的目的而提供的。它不旨在是穷尽的或是将本发明限于所揭示的精确形式。鉴于上述指导有众多修改或变化。选择所述的实施例最好的解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够在各个实施例中以及使用适用于所构想的特定用途的各种修改来利用本发明。本发明的范围由所附的权利要求书定义,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种为基于浏览器的应用提供即时通信功能的方法,通信对方为所述的应用系统或使用所述应用系统的用户,其特征在于包括如下步骤A、所述基于浏览器的应用与即时通信服务器之间互相提供消息接口;B、启动即时通信客户端,所述的客户端通过即时通信服务器以及即时通信服务器与所述的应用系统之间的消息接口,访问所述的基于浏览器的应用;C、通过即时通信客户端发送和接收即时会话消息,实现与通信对方的即时通信。
2.根据权利要求1所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤A中,所述的应用与即时通信服务器之间提供的接口中;所述的应用提供a1、向所述应用中特定用户或用户集合发送消息的接口;a2、获取所述应用中特定用户未查看的消息或消息集合的接口;即时通信服务器提供b1、向特定用户或用户集合发送消息的接口。
3.根据权利要求1或2所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤A中,所述的应用与即时通信服务器之间提供的接口中,所述的应用提供a3、对用户进行身份认证的接口;a4、查询特定用户在线状态的接口;或a5、设置特定用户在线状态的接口;或a6、a4与a5的复合;a7、获取特定用户在所述应用系统中联系人列表的接口;a8、获取和设置特定用户其他描述性信息的接口;即时通信服务器提供b2、对用户进行身份认证的接口;b3、查询特定用户在线状态的接口;或b4、设置特定用户在线状态的接口;或b5、b2与b3的复合;b6、获取特定用户未查看的消息或消息集合的接口;所述的联系人列表包括允许与之进行即时通信会话的应用系统用户的集合和不允许与之进行即时通信会话的应用系统用户的集合。
4.根据权利要求3所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于,所述的接口a3和接口b1不同时出现。
5.根据权利要求1或2所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤A中,所述的应用提供给即时通信服务器的接口通过HTTP或HTTPS协议实现;即时通信服务器提供给应用的接口是TCP或UDP的Socket连接。
6.根据权利要求5所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤A中,即时通信服务器与应用系统之间,通过连接代理服务器连接;其中连接代理服务器与即时通信服务器之间采用TCP长连接,应用系统与连接代理服务器采用TCP或UDP的短连接。
7.根据权利要求2所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于即时通信服务器接收到来自应用系统的请求时,有如下处理方式I、在当前连接返回请求的回应(数据或错误信息);II、通过HTTP或HTTPS协议或其他即时通信服务器与应用系统通信的方式将错误信息回传给应用系统;或者III、同时实现I和II两种方式。
8.根据权利要求1或2所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤B中,包括对用户身份进行认证;即时通信服务器可以通过应用系统提供的认证接口a3,对用户身份进行认证;即时通信服务器可以通过共享认证数据,如直接访问所述应用的记录用户身份认证信息的数据表、LDAP数据或等价的方法,对用户身份进行认证。
9.根据权利要求1或2所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤B中,对于所述应用系统中特定用户的属性,包括联系人列表和其他描述性的属性,在即时通信服务器或即时通信服务器可访问的其他存储设备中保存快取副本(cache)。
10.根据权利要求1或2所述的为基于浏览器的应用提供即时通信功能的方法,其特征在于在步骤C中,如果通信对方在线,则即时通信服务器将收到的消息会话转发至通信对方;如果通信对方离线,则即时通信服务器通知所述的应用,由所述的应用决定由即时通信服务器或应用自身存储离线消息,当通信对方上线时,再转发该会话消息给通信对方。
11.一种用于基于浏览器应用的即时通信系统,其特征在于包括即时通信服务器、基于浏览器的应用系统、即时通信客户端以及即时通信服务器与应用系统的通信模块,该模块连接即时通信系统与基于浏览器的应用系统,即时通信客户端通过即时通信服务器与所述的通信模块与应用系统和其他使用所述应用系统的用户近实时的交换会话消息。
全文摘要
本发明公开一种为基于浏览器的应用提供即时通信功能的方法和系统,通信对方为所述的应用系统或使用所述应用系统的用户,包括如下步骤所述基于浏览器的应用与即时通信服务器之间互相提供消息接口;启动即时通信客户端,所述的客户端通过即时通信服务器以及即时通信服务器与所述的应用系统之间的消息接口,访问所述的基于浏览器的应用;通过即时通信客户端发送和接收即时会话消息,实现与通信对方的即时通信,采用本发明所述的方法和系统,基于浏览器的应用系统不需要进行大量的改动,在某些情况下,应用系统甚至不需要进行任何改动,即可支持即时通信功能。
文档编号G06F17/30GK101094199SQ20071006416
公开日2007年12月26日 申请日期2007年3月2日 优先权日2007年3月2日
发明者李沫南 申请人:李沫南
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1