一种实现多IM协议Web版即时消息的方法

文档序号:7714795阅读:245来源:国知局
专利名称:一种实现多IM协议Web版即时消息的方法
技术领域
本发明属于计算机网络通信技术领域,尤其涉及多协议多用户Web的即时消息通 信技术领域。
背景技术
即时消息系统随着互联网的发展在迅速的发展。国外推出的即时消息系统比较 早,例如,ICQ及后来的AOL整合之后的AIM、微软MSN等。国内的许多IT公司也推出了自 己的即时消息系统,例如,网易POPO、新浪UC、腾讯QQ等,其中,腾讯QQ系统最为成功,用户 数量最多,已经成为人们交流必备的通讯工具之一。 随着技术的不断成熟,即时消息系统越来越丰富,聊天工具的种类也越来越多。当 人们需要使用多个聊天工具时,就使得人们使用的方便性降低,而且对计算机资源的消耗 也大大增加。此背景下,开发人员就希望能将多种即时消息工具集成到一起,于是就诞生了 多协议頂技术。例如,国内MyM,同时支持MSN、 QQ等五种协议;国外的MirandaIM支持 ICQ、AIM、MSN等协议; —般地,目前支持多协议即时消息的软件产品都是以客户端软件的方式提供给用
户,用户在使用之前需要在个人的电脑上进行安装设置,而且在运行时占用较多的计算机
资源。随着Web2. 0技术发展,越来越多的软件产品都以web方式为用户提供服务,网络服
务也是数据及通信服务的趋势。企业内部的网络服务有更为明显的优势,它使得对企业的
软件工作环境只需一次部署即可自由扩展使用,使软件产品的升级维护变得简单易行,对
员工工作环境的配置的工作量大大降低,对企业的统一管理变得更为方便。 本发明的主要内容是实现了一种Web方式的支持多IM协议的即时消息通信系统,
解决当前用户需要安装多种即时消息客户端浪费资源及使用不方便的问题。

发明内容
本发明目的是针对现有技术存在的缺陷提供一种基于Web的多IM协议即时消息 的实现方法,解决当前用户需要安装多种即时消息客户端浪费资源及使用不方便的问题。
本发明为实现上述目的,采用如下技术方案 本发明实现多IM协议Web版即时消息的方法,其特征在于用户通过浏览器进入登 录页面,选择即时消息协议并填写用户名和密码后,通过HTTP协议向应用服务器发送登录 请求; 当Web应用服务器接收到用户的登录请求时,调用LoginCheck Servlet完成对用 户请求的响应,该Servlet主要用于对用户授权以及向多协议IM服务器提交用户登录信 息; LoginCheck Servlet将用户登录请求中的用户名和即时消息协议信息去数据库 进行查询;如果该用户登录过本系统则向多协议IM服务器发送重新登陆请求,否则向多协 议IM服务器发送添加新用户请;然后,将用户登录链接状态该为"connecting",响应用户
5登录请求; 当多协议IM服务器收到Web服务器的重新登陆请求时,向IM服务提供商发送用 户登录请求;当多协议IM服务器收到Web服务器的添加新用户请求时,将该新用户所使用 的IM协议及用户名等信息保存到用户列表中,然后向IM服务提供商发送用户登录请求;当 多协议IM服务器收到IM服务提供商的授权或拒绝登录响应后,将该响应回发给Web服务 器; 用户收到登录链接状态为"co皿ecting"的服务器响应后,则定时以轮询方 式向Web服务器请求查询链接状态;若在设定的超时时间内收到的登录链接状态仍然 是"co皿ecting"则提示用户登录超时;若在设定的超时时间内收到的登录链接状态是 "disconnected"则提示用户登录失败,并将收到的失败原因一并通知给用户;若在设定的 超时时间内收到的登录链接状态是"co皿ected"则向Web服务器发送更新好友列表及状态 请求,同时跳转到用户好友列表主页面; 好友列表页面定时轮询的向Web服务器发送更新好友列表及状态请求以更新页 面好友及其在线状态;同时定时轮询的向Web服务器发送查询该用户是否收到即时消息请 求,若该用户的好友向其发送到消息到达Web服务器,则客户端获取该信息并提示用户有 新消息到达; 当用户点击与某位好友聊天时,打开与该好友聊天页面;该页面定时轮询的向 Web服务器查询是否有该好友的即时消息到达;当用户向该好友发送信息时,该页面向Web 服务器发出发送即时消息请求。 本发明提供了一种基于Web的支持多IM协议的即时消息通信的实现方法,用户无 需在本地安装客户端软件,只需有浏览器支持即可实现在线的即时消息通信,在服务器端 合理的优化了用户管理和数据存储格式,从而给用户带来简易方便的使用体验。


图1多IM协议Web版即时消息系统总体结构图。 图2数据库中存储用户信息基本结构图。 图3数据库中存储即时消息基本结构图。 图4Web应用服务器接收到客户端用户登录请求的处理流程图。 图5Web应用服务器接收到更新好友列表及状态请求处理流程图。 图6Web应用服务器接收到发送即时消息请求的处理流程图。 图7Web应用服务器接收到获取好友消息请求的处理流程图。
具体实施例方式
下面结合附图对发明的技术方案进行详细说明 图1是多IM协议Web版即时消息系统总体结构图。图1中用户通过客户端的浏览 器(如;Firefox)登录Web应用服务器;Web应用服务器主要完成三件任务,分别是(1)对 用户的鉴别、授权、用户请求命令的解析等针对客户端请求的任务,(2)完成用户管理信息、 即时消息记录信息、用户好友列表及在线状态信息在数据库中的添加、查询、更新及删除操 作,(3)完成用户登录、查询及接收好友列表、发送及接收好友即时消息等和多协议IM服务
6器的通信工作;图1中服务器端的数据库主要存储用户帐号及其使用的IM协议、用户的好 友列表及其在线状态、按照好友区分的用户即时消息记录等信息,并提供给Web应用服务 器查询和更新等操作;多协议IM服务器是本系统中用户和IM提供商服务器进行通信的桥 梁,主要完成和Web服务器及IM提供商通信的工作,对于Web服务器来讲其扮演C/S结构 中的服务器角色,完成对Web应用服务器请求的响应;对IM提供商服务器来讲其扮演C/S 结构中的客户端角色,完成向IM提供商服务器请求的工作;和Web应用服务器通信使用的 是自定义的通信协议,和M提供商服务器通信使用的是多M协议中的一种。
图2是数据库中存储用户信息基本结构图。存储的用户信息包括用户在本系统 中的ID,用户名(用户所选协议的用户名),用户选择的IM协议ID,用户的备注名称,用 户的在线状态,用户的连接状态,用户第一次登录本系统的时间,用户上次登录本系统的时 间。用户在本系统中的ID唯一标识了用户身份信息;用户名和其所选择的IM协议ID两者 共同决定了用户登录IM服务提供商的信息;用户的在线状态标识了当前用户设置自己的 在线状态,该信息可以直接反映在用户好友的列表中;用户的连接状态标识了用户和IM服 务提供商之间的连接情况,该字段中用户登录时可以判断用户是否登录成功或者正在登录 等状态。该信息提供Web服务器以用户名和协议ID共同查询,以获取该用户的各个字段信 息。 图3是数据库中存储即时消息基本结构图。存储的信息包括消息序号,消息所属 IM协议ID,消息发送者,消息接收者,消息内容,消息发送时间,消息是否已读。消息序号标 识了本系统存储的消息条数及本条消息所处的位置,是消息结构的唯一标识符;消息所属 IM协议ID标识了该消息的来源服务器;消息发送者存储了消息发送者的用户名信息,即在 该IM协议中的唯一标识符;消息接收者存储了消息接收者的用户名信息,结合所属IM协议 ID即可在用户信息基本结构中唯一确认接收人信息;消息内容是用HTML标签格式存储的 用户即时消息内容;消息发送时间存储的是自1970年1月1日0时至今的秒数;消息是否 已读标识了该条记录是否已经发送给过Web客户端。数据库中的即时消息完整的保存了用 户的所有消息记录,用户可以选择只查看本次消息也可以选择自登录本系统以来所有的消 息记录。 图4是Web应用服务器接收客户端用户登录请求的处理流程图。当Web应用服务 器收到浏览器客户端的登录请求时,其处理过程如下 步骤401 :Web应用服务器接收到用户从客户端发送到登录的HTTP请求 步骤402 :Web应用服务器将该用户的用户名及使用的即时消息协议作为条件去
数据库查询从而判断该用户是否登录过本系统。如果该用户登录过本系统,则执行步骤
403,否则执行步骤404. 步骤403 :Web应用服务器以该用户的信息为参数向多协议M服务器发送用户重 新登录请求,而后执行步骤405。 步骤404 :将该用户的用户名、所使用的协议类型、登录时间等信息保存到数据库 中,同时向多协议IM服务器发送添加新用户请求,而后执行步骤405。 步骤405 :查询来自多协议IM服务器的信息,判断是否收到登录信息。如果没有 收到,则执行步骤406,否则执行步骤407。 步骤4Q6 :将要返回给Web客户端信息中的连接状态字段设置为"co皿ecting",而后执行步骤408。 步骤407 :将接收到的信息保存到数据库,同时将要返回给Web客户端信息中的连
接状态字段设置为"connected",,而后执行步骤408。 步骤408 :封装好客户端可以解析的数据包格式,返回客户端。 图5是Web应用服务器接收好友列表及状态请求处理流程图。当Web应用服务器
收到浏览器客户端的接收好友列表及状态请求时,其处理过程如下 步骤501 :Web应用服务器接收到用户从客户端发送的获取好友列表及其在线状 态的HTTP请求。 步骤502 :Web应用服务器根据该请求的会话ID判断该请求的发送方是否已经通 过本系统的登录认证及授权。如果本次请求没有通过登录系统的认证及授权,则执行步骤 503,否则执行步骤504。 步骤503 :返回拒绝服务信息,同时通知客户端跳转到用户登录页面,并提示用户 只有登录后才能完成操作,完成后执行步骤507。 步骤504 :获取本次链接中的用户名及协议类型,并以此为条件对数据库进行查 询操作,以判断是否有该用户的好友信息。如果有,则执行步骤505,否则执行步骤506。
步骤505 :将好友列表及其在线状态信息发送给客户端,同时向IM服务器发送更 新该用户好友列表及在线状态的请求。因为Web客户端会定时轮询的请求好友列表及在线 状态,所以该更新请求是为下次客户端的好友列表及状态请求提供结果的,完成后执行步 骤507。 步骤506 :向IM服务器发送更新该用户好友列表及在线状态的请求,同时向Web 客户端返回空信息。客户端收到空信息则表明好友列表信息还没有到达Web服务器,会在 一定时间后再次向服务器发送获取好友列表及其在线状态的HTTP请求,完成后执行步骤 507。 步骤507 :封装好客户端可以解析的数据包格式,返回客户端。 图6是Web应用服务器接收到发送即时消息请求的处理流程图。当Web应用服务
器收到浏览器客户端的发送即时消息请求时,其处理过程如下 步骤601 :Web应用服务器接收到客户端的发送即时消息的HTTP请求 步骤602 :Web应用服务器根据该请求的会话ID判断该请求的发送方是否已经通
过本系统的登录认证及授权。如果本次请求没有通过登录系统的认证及授权,则执行步骤
603,否则执行步骤604。 步骤603 :返回拒绝服务信息,同时通知客户端跳转到用户登录页面,并提示用户 只有登录后才能完成操作,完成后执行步骤607。 步骤604 :获取本次链接中的用户名、协议类型及目标好友的用户名,并以此为条 件将用户想要发送的消息发送给M服务器,完成后执行步骤605。 步骤605 :检查IM服务器返回的信息,判断消息是否发送成功。如果消息发送成 功,则执行步骤607,否则执行步骤606。 步骤606 :如果消息发送不成功,则通知用户本次即时消息没有发送成功,并将消
息未发送成功的原因一并返回给客户端,然后执行步骤607。 步骤6Q7 :封装好客户端可以解析的数据包格式,返回客户端。
图7是Web应用服务器接收到获取好友消息请求的处理流程图。当Web应用服务
器收到浏览器客户端的获取好友消息请求时,其处理过程如下 步骤701 :Web应用服务器接收到客户端的发送即时消息的HTTP请求。 步骤702 :Web应用服务器根据该请求的会话ID判断该请求的发送方是否已经通
过本系统的登录认证及授权。如果本次请求没有通过登录系统的认证及授权,则执行步骤
703,否则执行步骤704。 步骤703 :返回拒绝服务信息,同时通知客户端跳转到用户登录页面,并提示用户 只有登录后才能完成操作。完成后执行步骤706。 步骤704 :获取本次链接中的用户名及协议类型,并以此为条件对数据库进行查 询操作,以判断该用户是否有未读信息。如果没有未读信息,则执行步骤706,否则执行步骤 705。 步骤705 :如果有未读信息,则从数据库中取出该信息,将该信息放入发送给客户 端的缓存中。完成后执行步骤706。 步骤706 :封装好客户端可以解析的数据包格式,返回客户端。
权利要求
一种实现多IM协议Web版即时消息的方法,其特征在于用户通过浏览器进入登录页面,选择即时消息协议并填写用户名和密码后,通过HTTP协议向应用服务器发送登录请求;当Web应用服务器接收到用户的登录请求时,调用LoginCheck Servlet完成对用户请求的响应,该LoginCheck Servlet主要用于对用户授权以及向多协议IM服务器提交用户登录信息;LoginCheck Servlet将用户登录请求中的用户名和即时消息协议信息去数据库进行查询;如果该用户登录过本系统则向多协议IM服务器发送重新登陆请求,否则向多协议IM服务器发送添加新用户请;然后,将用户登录链接状态该为“connecting”,响应用户登录请求;当多协议IM服务器收到Web服务器的重新登陆请求时,向IM服务提供商发送用户登录请求;当多协议IM服务器收到Web服务器的添加新用户请求时,将该新用户所使用的IM协议及用户名等信息保存到用户列表中,然后向IM服务提供商发送用户登录请求;当多协议IM服务器收到IM服务提供商的授权或拒绝登录响应后,将该响应回发给Web服务器;用户收到登录链接状态为“connecting”的服务器响应后,则定时以轮询方式向Web服务器请求查询链接状态;若在设定的超时时间内收到的登录链接状态仍然是“connecting”则提示用户登录超时;若在设定的超时时间内收到的登录链接状态是“disconnected”则提示用户登录失败,并将收到的失败原因一并通知给用户;若在设定的超时时间内收到的登录链接状态是“connected”则向Web服务器发送更新好友列表及状态请求,同时跳转到用户好友列表主页面;好友列表页面定时轮询的向Web服务器发送更新好友列表及状态请求以更新页面好友及其在线状态;同时定时轮询的向Web服务器发送查询该用户是否收到即时消息请求,若该用户的好友向其发送到消息到达Web服务器,则客户端获取该信息并提示用户有新消息到达;当用户点击与某位好友聊天时,打开与该好友聊天页面;该页面定时轮询的向Web服务器查询是否有该好友的即时消息到达;当用户向该好友发送信息时,该页面向Web服务器发出发送即时消息请求。
2. 根据权利要求l所述的实现多IM协议Web版即时消息的方法,其特征在于Web应用 服务器接收客户端用户登录请求的处理方法,包括如下步骤步骤401 :Web应用服务器接收到用户从客户端发送到登录的HTTP请求;步骤402 :Web应用服务器将该用户的用户名及使用的即时消息协议作为条件去数据库查询从而判断该用户是否登录过本系统。如果该用户登录过本系统,则执行步骤403,否则执行步骤404 ;步骤403 :Web应用服务器以该用户的信息为参数向多协议IM服务器发送用户重新登 录请求,而后执行步骤405;步骤404:将该用户的用户名、所使用的协议类型、登录时间等信息保存到数据库中, 同时向多协议IM服务器发送添加新用户请求,而后执行步骤405 ;步骤405 :查询来自多协议IM服务器的信息,判断是否收到登录信息。如果没有收到, 则执行步骤406,否则执行步骤407 ;步骤406 :将要返回给Web客户端信息中的连接状态字段设置为"co皿ecting",而后执 行步骤408 ;步骤407 :将接收到的信息保存到数据库,同时将要返回给Web客户端信息中的连接状 态字段设置为"connected",,而后执行步骤408 ;步骤408 :封装好客户端可以解析的数据包格式,返回客户端。
3. 根据权利要求l所述的实现多IM协议Web版即时消息的方法,其特征在于Web应用 服务器接收好友列表及状态请求处理方法,包括如下步骤步骤501 :Web应用服务器接收到用户从客户端发送的获取好友列表及其在线状态的 HTTP请求;步骤502 :Web应用服务器根据该请求的会话ID判断该请求的发送方是否已经通过本 系统的登录认证及授权,如果本次请求没有通过登录系统的认证及授权,则执行步骤503, 否则执行步骤504 ;步骤503 :返回拒绝服务信息,同时通知客户端跳转到用户登录页面,并提示用户只有 登录后才能完成操作,完成后执行步骤507 ;步骤504:获取本次链接中的用户名及协议类型,并以此为条件对数据库进行查询操 作,以判断是否有该用户的好友信息。如果有,则执行步骤505,否则执行步骤506 ;步骤505 :将好友列表及其在线状态信息发送给客户端,同时向IM服务器发送更新该 用户好友列表及在线状态的请求,完成后执行步骤507 ;步骤506 :向IM服务器发送更新该用户好友列表及在线状态的请求,同时向Web客户 端返回空信息;客户端收到空信息则表明好友列表信息还没有到达Web服务器,则在一定 时间后再次向服务器发送获取好友列表及其在线状态的HTTP请求,完成后执行步骤507 ;步骤507 :封装好客户端可以解析的数据包格式,返回客户端。
4. 根据权利要求l所述的实现多IM协议Web版即时消息的方法,其特征在于Web应用 服务器接收到发送即时消息请求的处理方法,包括如下步骤步骤601 :Web应用服务器接收到客户端的发送即时消息的HTTP请求;步骤602 :Web应用服务器根据该请求的会话ID判断该请求的发送方是否已经通过本系统的登录认证及授权,如果本次请求没有通过登录系统的认证及授权,则执行步骤603,否则执行步骤604 ;步骤603 :返回拒绝服务信息,同时通知客户端跳转到用户登录页面,并提示用户只有 登录后才能完成操作,完成后执行步骤607 ;步骤604:获取本次链接中的用户名、协议类型及目标好友的用户名,并以此为条件将 用户想要发送的消息发送给M服务器,完成后执行步骤605 ;步骤605 :检查IM服务器返回的信息,判断消息是否发送成功。如果消息发送成功,则 执行步骤607,否则执行步骤606 ;步骤606 :如果消息发送不成功,则通知用户本次即时消息没有发送成功,并将消息未 发送成功的原因一并返回给客户端,然后执行步骤607 ;步骤607 :封装好客户端可以解析的数据包格式,返回客户端。
5. 根据权利要求l所述的实现多IM协议Web版即时消息的方法,其特征在于Web应用 服务器接收到获取好友消息请求的处理方法,包括如下步骤步骤701 :Web应用服务器接收到客户端的发送即时消息的HTTP请求;步骤702 :Web应用服务器根据该请求的会话ID判断该请求的发送方是否已经通过本系统的登录认证及授权,如果本次请求没有通过登录系统的认证及授权,则执行步骤703,否则执行步骤704 ;步骤703 :返回拒绝服务信息,同时通知客户端跳转到用户登录页面,并提示用户只有 登录后才能完成操作。完成后执行步骤706;步骤704:获取本次链接中的用户名及协议类型,并以此为条件对数据库进行查询操 作,以判断该用户是否有未读信息。如果没有未读信息,则执行步骤706,否则执行步骤705 ;步骤705 :如果有未读信息,则从数据库中取出该信息,将该信息放入发送给客户端的 缓存中。完成后执行步骤706;步骤706 :封装好客户端可以解析的数据包格式,返回客户端。
全文摘要
本发明公布了一种实现多IM协议Web版即时消息的方法,用户通过客户端的浏览器登录Web应用服务器;Web应用服务器主要完成(1)对用户的鉴别、授权、用户请求命令的解析等针对客户端请求的任务,(2)完成用户管理信息、即时消息记录信息、用户好友列表及在线状态信息在数据库中的添加、查询、更新及删除操作,(3)完成用户登录、查询及接收好友列表、发送及接收好友即时消息等和多协议IM服务器的通信工作。本发明用户无需在本地安装客户端软件,只需有浏览器支持即可实现在线的即时消息通信,在服务器端合理的优化了用户管理和数据存储格式,从而给用户带来简易方便的使用体验。
文档编号H04L29/06GK101710882SQ20091018543
公开日2010年5月19日 申请日期2009年11月9日 优先权日2009年11月9日
发明者侯旭勃, 吕婉, 孙庆庆, 席雯, 张勤, 朱一星, 朱光辉, 沈毅, 王开, 王振科, 王梁, 裴文江, 顾衍 申请人:南京希华通信技术有限公司;东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1