CN115348317A - 一种实现web系统即时通信的方法、装置和系统 - Google Patents

一种实现web系统即时通信的方法、装置和系统 Download PDF

Info

Publication number
CN115348317A
CN115348317A CN202210971326.3A CN202210971326A CN115348317A CN 115348317 A CN115348317 A CN 115348317A CN 202210971326 A CN202210971326 A CN 202210971326A CN 115348317 A CN115348317 A CN 115348317A
Authority
CN
China
Prior art keywords
user
instant messaging
request
server
client
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.)
Granted
Application number
CN202210971326.3A
Other languages
English (en)
Other versions
CN115348317B (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.)
Beiming Chenggong Software Shandong Co ltd
Original Assignee
Beiming Chenggong Software Shandong 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 Beiming Chenggong Software Shandong Co ltd filed Critical Beiming Chenggong Software Shandong Co ltd
Priority to CN202210971326.3A priority Critical patent/CN115348317B/zh
Publication of CN115348317A publication Critical patent/CN115348317A/zh
Application granted granted Critical
Publication of CN115348317B publication Critical patent/CN115348317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明还提出了一种实现web系统即时通信的方法,装置和系统,该方法运行于反向代理服务器,包括:获取用户请求,即时通信登录验证通过后,转发用户请求到后端服务器;响应于后端服务器,在响应数据符合预设格式下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于执行即时通信客户端脚本,建立与客户端服务器的通信连接;获取用户上线消息,并向后端服务器和客户端服务器均广播上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户的通道,建立用户和目的用户的即时通信。基于该方法,还提出了一种实现web系统即时通信的装置和系统,本发明通过增加反向代理服务器,无需对系统进行代码修改即可增加即时通信功能。

Description

一种实现web系统即时通信的方法、装置和系统
技术领域
本发明属于即时通信技术领域,特别涉及一种实现web系统即时通信的方法、装置和系统。
背景技术
Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件。一个Web应用程序是由完成特定任务的各种Web组件(web components)构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。所有这些组件相互协调为用户提供一组完整的服务。
对现有的WEB系统增加即时通信功能,目前主要的做法是对现有WEB系统在代码级别上进行修改,对于一些老系统可能已经没有相应的研发人员对应造成无法增加即时通信功能。
发明内容
为了解决上述技术问题,本发明提出了一种实现web系统即时通信的方法、装置和系统,采用反向代理服务器,在不需要对现有WEB系统进行代码修改的情况下实现即时通信功能。
为实现上述目的,本发明采用以下技术方案:
本发明还提出了一种实现web系统即时通信的方法,运行于反向代理服务器,包括以下步骤:
获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;
响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;
获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。
进一步的,所述建立与客户端服务器的通信连接的详细过程包括:
反向代理服务器响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,将引导脚本植入到响应数据中;向客户端服务器返回包含引导脚本的界面;客户端服务器执行所述引导脚本,在判断符合加载即时通信客户端脚本的条件下,加载即时通信客户端脚本;所述引导脚本用于引导加载即时通信客户端脚本;
反向代理服务器响应于即时通信客户端脚本的执行,将用户标识更新至即时通信客户端脚本中,并返回至客户端服务器;客户端服务器执行所述即时通信客户端脚本,建立与反向代理服务器的通信连接。
进一步的,所述响应数据符合预设格式具体包括:相应数据的content_type是否为text/html格式,页面URL是否符合设置的规则。
进一步的,所述引导脚本为JS代码,用于判断DOM的窗口大小是否大于特定值,是否是顶层窗口。
进一步的,所述在判断符合加载即时通信客户端脚本的条件下,加载即时通信客户端脚本具体包括:如果DOM窗口大于特定值,且为顶层窗口,异步加载即时通信客户端脚本。
进一步的,所述获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器的详细过程包括:
获取用户未登录状态下的页面请求,如果页面请求中包含即时通信的登录标识,向客户端服务器返回即使通信登录页面;
响应于用户登录,从提交路径中获取用户密码,并与系统数据库的用户密码进行对比,如果比如成功,则设置用户为已登录状态,并向客户端服务器发送重定向消息;
响应于二次页面请求,如果用户状态为已登录,则将所述二次页面请求转发至后端WEB服务器。
进一步的,所述提交路径不同于反向代理服务器和后端WEB服务器之间的路径。
进一步的,所述建立用户和目的用户之间的即时通信时,即时通信客户端脚本封装发送消息的请求;所述发送消息的请求包括发送人,接收人和消息内容。
本发明还提出了一种实现web系统即时通信的装置,包括客户端服务器、反向代理服务器和后端WEB服务器;
所述客户端服务器用于发出页面请求,在用户请求验证时,通过即时通信登录用户名和密码进行登录;以及在接收到反向代理服务器发出的加载即时通信客户端脚本的请求时;加载即时通信客户端脚本,建立与反向代理服务器之间的通信连接;以及发出即时通信的请求;
所述反向代理服务器用于获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信;
所述后端WEB服务器用于反馈响应数据;以及在建立即时通信连接后从页面展示即时通信的消息。
本发明还提出了一种实现web系统即时通信的系统,包括验证模块、建立连接模块和通信模块;
所述验证模块用于获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;
所述建立连接模块用于响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;
所述通信模块用于获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明还提出了一种实现web系统即时通信的方法,运行于反向代理服务器,包括以下步骤:获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。基于一种实现web系统即时通信的方法,还提出了一种实现web系统即时通信的装置和系统。本发明基于JAVA的NETTY框架开发具有反向代理服务器和即时通信服务器功能的应用,利用反向代理服务器的功能,在代理的WEB应用返回的页面中植入脚本代码,通过脚本代码实现在各WEB页面中创建对话窗口以及相应的发送接收消息功能;利用即时通信的服务器功能。本发明接收各页面客户端发送的消息;推送到各页面客户端消息能够给基于WEB的业务系统快速的增加及时通讯功能,同时也可以跨多个WEB系统实现即时通信功能,无需对WEB系统进行代码改造。
附图说明
如图1为本发明实施例1即时通信验证的示意图;
如图2为本发明实施例1即时通信客户端脚本植入的示意图;
如图3为本发明实施例1即时通信过程示意图;
如图4为本发明实施例2一种实现web系统即时通信的装置示意图;
如图5为本发明实施例3一种实现web系统即时通信的系统示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例1
本发明实施例1提出了一种实现web系统即时通信的方法,解决已经建设完成的WEB系统需要增加即时通信功能时,无需对系统进行代码修改即可增加即时通信功能。
基于JAVA的NETTY框架开发具有反向代理服务器和即时通信服务器功能的应用,利用反向代理服务器的功能,在代理的WEB应用返回的页面中植入脚本代码,通过脚本代码实现在各WEB页面中创建对话窗口以及相应的发送接收消息功能;利用即时通信的服务器功能。接收各页面客户端发送的消息;推送到各页面客户端消息。
其中,Netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
该方法运行于反向代理服务器,反向代理服务器主要实现对所有WEB请求和相应消息体的拦截及修改,包括以下步骤:
获取用户请求,在通过所述用户请求验证为即时通信用户后,转发用户请求到后端WEB服务器;
响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行即时通信客户端脚本,建立与客户端服务器的通信连接;
获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。
如图1为本发明实施例1即时通信验证的示意图;
获取用户未登录状态下的页面请求,如果页面请求中包含即时通信的登录标识,向客户端服务器返回即使通信登录页面;本申请中判断用户的COOKIE是否包含有特定的即时通信用户登录标识(此处我们定义标识为jstx_user=用户名),如果有此标识,则说明是已经登录到即时通信的用户端。如果无此标识,则说明尚未登录即时通信的用户端,直接返回登录即时通信的用户端页面。
响应于用户登录,从提交路径中获取用户密码,并与系统数据库的用户密码进行对比,如果比如成功,则设置用户为已登录状态,并向客户端服务器发送重定向消息;此处定义路径为/jstx_dl,需要避免与所代理的WEB应用的路径重复),反向代理服务器判断提交路径为/jstx_dl,从提交信息中取出用户密码与系统数据库的用户密码进行比对,比对成功后在http响应头中设置cookie:jstx_user=用户名;同时设置用户为已登录状态;返回浏览器重定向到客户端服务器。
响应于二次页面请求,如果用户状态为已登录,则将二次页面请求转发至后端WEB服务器。客户端服务器收到重定向的响应后,按照HTTP协议设置cookie jstx_user=用户名,然后重新向WEB应用发起请求,反向代理服务器拦截到此请求后,判断用户的COOKIE是否包含有特定的即时通信用户登录标识(此处我们定义标识为jstx_user=用户名),如果有此标识,则说明是已经登录到即时通信客户端的用户,按照反向代理服务器的功能将请求发送到后端WEB服务器。
如图2为本发明实施例1即时通信客户端脚本植入的示意图;即时通信的通讯操作与信息展示界面是依赖于用户的WEB系统的页面,可以通过后台的参数设置或模糊匹配方式指定哪些页面可以具有即时通信功能。为了实现在WEB页面中增加即时通信的功能,需要反向代理服务器对所有的页面进行拦截,并根据规则对部分响应页面植入即时通信的脚本代码。
即时通信客户端脚本植入之后建立与反向代理服务器的通信连接的过程详细包括:反向代理服务器响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,将引导脚本植入到响应数据中;向客户端服务器返回包含引导脚本的界面;客户端服务器执行所述引导脚本,在判断符合加载即时通信客户端脚本的条件下,加载即时通信客户端脚本;所述引导脚本用于引导加载即时通信客户端脚本;
反向代理服务器响应于即时通信客户端脚本的执行,将用户标识更新至即时通信客户端脚本中,并返回至客户端服务器;客户端服务器执行即时通信客户端脚本,建立与反向代理服务器的通信连接。
图2中,用户使用浏览器访问使用本发明的反向代理服务器代理的某个应用的页面:如http://abc.com/app/a.html;反向代理服务器拦截到请求,通过前述的验证后将请求直接转发到后端WEB服务器,后端WEB服务器将响应数据返回给反向代理服务器,反向代理服务器判断返回的content_type是否为text/html格式,页面URL是否符合设置的规则,如果以上都符合则将引导脚本植入到返回的响应数据中。
引导脚本是一段JS代码,主要判断此DOM的窗口大小是否大于特定值,是否是顶层窗口。
客户端服务器接收到响应后,渲染应用的页面,同时引导脚本开始执行,如果符合加载条件(如DOM窗口大于特定值,同时也是顶层窗口),则异步加载即时通信客户端脚本。
本发明的反向代理服务器接收到信息后,将用户的标识更新到即时通信客户端脚本后返回给客户端服务器;客户端服务器接收到响应后在页面中创建即时通信的对话窗口,与反向代理服务器建立WEBSOCKET连接。
如图3为本发明实施例1即时通信过程示意图;图3中采用用户A给用户B发送消息来说明通讯过程。
用户A通过前述步骤已经将即时通信客户端脚本执行完毕,客户端服务器和反向代理服务器建立连接。
用户A与反向代理服务器建立连接后首先要发送一个用户上线的消息给反向代理服务器。反向代理服务器收到请求后广播用户A上线消息,用户A和用户B接收到消息后更新本地即时通信客户端脚本的用户列表。
用户A选择列表中的用户B进行消息发送,即时通信客户端脚本会将此消息封装后发送给反向代理服务器,封装的消息包括发送人,接收人,消息内容;反向代理服务器接收到封装消息后解析内容,取出接收人,从反向代理服务器的WEBSOCKET客户端通道找到用户B的所有信道,将消息发送给用户B的所有即时通信客户端脚本。用户B的每个即时通信客户端脚本接收到消息后展示出用户B发送的信息。
本发明实施例1提出的一种实现web系统即时通信的方法,能够给基于WEB的业务系统快速的增加及时通讯功能。同时也可以跨多个WEB系统实现即时通信功能。无需对WEB系统进行代码改造。
实施例2
基于本发明实施例1提出的一种实现web系统即时通信的方法,本发明实施例2还提出了一种实现web系统即时通信的装置,如图4为本发明实施例2一种实现web系统即时通信的装置示意图;该装置包括客户端服务器、反向代理服务器和后端WEB服务器;
客户端服务器用于发出页面请求,在用户请求验证时,通过即时通信登录用户名和密码进行登录;以及在接收到反向代理服务器发出的加载即时通信客户端脚本的请求时;加载即时通信客户端脚本,建立与反向代理服务器之间的通信连接;以及发出即时通信的请求;
反向代理服务器用于获取用户请求,在通过用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信;
后端WEB服务器用于反馈响应数据;以及在建立即时通信连接后从页面展示即时通信的消息。
本发明实施例2中提出的一种实现web系统即时通信的装置中每个模块的实现详细过程可参照实施例1中的过程。
在即时通信验证阶段:
客户端服务器向反向代理服务器发出未登录状态下请求应用服务器页面;
反向代理服务器接收请求,判断用户的COOKIE是否包含有特定的即时通信用户登录标识(此处我们定义标识为jstx_user=用户名),如果有此标识,则说明是已经登录到即时通信的用户端。如果无此标识,则说明尚未登录即时通信的用户端,直接返回登录即时通信的用户端页面;
在客户端服务器,用户填写即时通信用户名和密码进行登录;此处定义路径为/jstx_dl,需要避免与所代理的WEB应用的路径重复;
反向代理服务器判断提交路径为/jstx_dl,从提交信息中取出用户密码与系统数据库的用户密码进行比对,比对成功后在http响应头中设置cookie:jstx_user=用户名;同时设置用户为已登录状态;返回浏览器重定向到客户端服务器;
客户端服务器接收到重定向消息之后,重新请求业务页面。
反向代理服务器判断COOKIE中包含即时通信的登录标识,判断用户状态为已登录。
在即时通信代码植入阶段:
在客户端服务器,用户使用浏览器访问使用本发明的反向代理服务器代理的某个应用的页面:如http://abc.com/app/a.html;
反向代理服务器拦截到请求,通过前述的验证后将请求直接转发到后端WEB服务器;
后端WEB服务器将响应数据返回给反向代理服务器;
反向代理服务器判断返回的content_type是否为text/html格式,页面URL是否符合设置的规则,如果以上都符合则将引导脚本植入到返回的响应数据a.html中。
在客户端服务器,a.html页面展现后,自动执行引脚脚本,如果符合加载条件(如DOM窗口大于特定值,同时也是顶层窗口),则向反代理服务器发出异步加载即时通信客户端脚本的请求。
反代理服务器接收到加载即时通信客户端脚本的请求之后,将用户标识更新到即时通信客户端脚本中,并向客户端服务器发出增加用户标识之后的即时通信客户端脚本。
客户端服务器执行增加用户标识之后的即时通信客户端脚本,在页面中创建聊天窗口,建立与反向代理服务器的WEBSOCKET连接。
即时通信的过程阶段:
在客户端服务器,通过WEBSOCKET协议发送用户A上线的消息;
反代理服务器接收到A上线的消息之后,更新用户列表,向客户端服务器和后端WEB服务器广播用户A上线消息;
客户端服务器接收到A上线消息之后,更新本地用户列表;
后端WEB服务器接收到A上线消息之后,更新本地用户列表;
在客户端服务器,用户A向用户B再次发送消息;
反代理服务器接收到A向用户B再次发送的消息之后,确定到用户B的通道,用户A发送给用户B的消息;
后端WEB服务器接收到A发送的消息之后在页面中展示。
本发明实施例2提出的基于一种实现web系统即时通信的装置,采用JAVA的NETTY框架开发具有反向代理服务器和即时通信服务器功能的应用,利用反向代理服务器的功能,在代理的WEB应用返回的页面中植入脚本代码,通过脚本代码实现在各WEB页面中创建对话窗口以及相应的发送接收消息功能;利用即时通信的服务器功能。本发明接收各页面客户端发送的消息;推送到各页面客户端消息能够给基于WEB的业务系统快速的增加及时通讯功能,同时也可以跨多个WEB系统实现即时通信功能,无需对WEB系统进行代码改造。
实施例3
基于本发明实施例1提出的一种实现web系统即时通信的方法,本发明实施例3还提出了种实现web系统即时通信的系统,如图5为本发明实施例3一种实现web系统即时通信的系统示意图,包括验证模块、建立连接模块和通信模块;
验证模块用于获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;
建立连接模块用于响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;
通信模块用于获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。
本发明实施例3的一种实现web系统即时通信的系统的详细执行过程可参照本发明实施例3的一种实现web系统即时通信的方法中详细描述的过程,在此不做赘述。本发明实施例3可以实现与本发明实施例1和本发明实施例2相同的技术效果,即本发明实施例3提出的基于一种实现web系统即时通信的系统,采用JAVA的NETTY框架开发具有反向代理服务器和即时通信服务器功能的应用,利用反向代理服务器的功能,在代理的WEB应用返回的页面中植入脚本代码,通过脚本代码实现在各WEB页面中创建对话窗口以及相应的发送接收消息功能;利用即时通信的服务器功能。本发明接收各页面客户端发送的消息;推送到各页面客户端消息能够给基于WEB的业务系统快速的增加及时通讯功能,同时也可以跨多个WEB系统实现即时通信功能,无需对WEB系统进行代码改造。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.一种实现web系统即时通信的方法,其特征在于,运行于反向代理服务器,包括以下步骤:
获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;
响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;
获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。
2.根据权利要求1所述的一种实现web系统即时通信的方法,其特征在于,所述建立与客户端服务器的通信连接的详细过程包括:
反向代理服务器响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,将引导脚本植入到响应数据中;向客户端服务器返回包含引导脚本的界面;客户端服务器执行所述引导脚本,在判断符合加载即时通信客户端脚本的条件下,加载即时通信客户端脚本;所述引导脚本用于引导加载即时通信客户端脚本;
反向代理服务器响应于即时通信客户端脚本的执行,将用户标识更新至即时通信客户端脚本中,并返回至客户端服务器;客户端服务器执行所述即时通信客户端脚本,建立与反向代理服务器的通信连接。
3.根据权利要求1所述的一种实现web系统即时通信的方法,其特征在于,所述响应数据符合预设格式具体包括:相应数据的content_type是否为text/html格式,页面URL是否符合设置的规则。
4.根据权利要求2所述的一种实现web系统即时通信的方法,其特征在于,所述引导脚本为JS代码,用于判断DOM的窗口大小是否大于特定值,是否是顶层窗口。
5.根据权利要求4所述的一种实现web系统即时通信的方法,其特征在于,所述在判断符合加载即时通信客户端脚本的条件下,加载即时通信客户端脚本具体包括:如果DOM窗口大于特定值,且为顶层窗口,异步加载即时通信客户端脚本。
6.根据权利要求1所述的一种实现web系统即时通信的方法,其特征在于,所述获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器的详细过程包括:
获取用户未登录状态下的页面请求,如果页面请求中包含即时通信的登录标识,向客户端服务器返回即使通信登录页面;
响应于用户登录,从提交路径中获取用户密码,并与系统数据库的用户密码进行对比,如果比如成功,则设置用户为已登录状态,并向客户端服务器发送重定向消息;
响应于二次页面请求,如果用户状态为已登录,则将所述二次页面请求转发至后端WEB服务器。
7.根据权利要求6所述的一种实现web系统即时通信的方法,其特征在于,所述提交路径不同于反向代理服务器和后端WEB服务器之间的路径。
8.根据权利要求1所述的一种实现web系统即时通信的方法,其特征在于,所述建立用户和目的用户之间的即时通信时,即时通信客户端脚本封装发送消息的请求;所述发送消息的请求包括发送人,接收人和消息内容。
9.一种实现web系统即时通信的装置,其特征在于,包括客户端服务器、反向代理服务器和后端WEB服务器;
所述客户端服务器用于发出页面请求,在用户请求验证时,通过即时通信登录用户名和密码进行登录;以及在接收到反向代理服务器发出的加载即时通信客户端脚本的请求时;加载即时通信客户端脚本,建立与反向代理服务器之间的通信连接;以及发出即时通信的请求;
所述反向代理服务器用于获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信;
所述后端WEB服务器用于反馈响应数据;以及在建立即时通信连接后从页面展示即时通信的消息。
10.一种实现web系统即时通信的系统,其特征在于,包括验证模块、建立连接模块和通信模块;
所述验证模块用于获取用户请求,在通过所述用户请求验证为即时通信用户后,转发所述用户请求到后端WEB服务器;
所述建立连接模块用于响应于后端WEB服务器的用户请求,在响应数据符合预设格式的前提下,向客户端服务器返回加载即时通信客户端脚本的请求;响应于客户端服务器执行所述即时通信客户端脚本,建立与客户端服务器的通信连接;
所述通信模块用于获取用户上线消息,并向客户端服务器和后端WEB服务器均广播用户上线消息;再次获取用户向目的用户发送消息的请求,确定向目的用户发送请求的通道,建立用户和目的用户之间的即时通信。
CN202210971326.3A 2022-08-12 2022-08-12 一种实现web系统即时通信的方法、装置和系统 Active CN115348317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210971326.3A CN115348317B (zh) 2022-08-12 2022-08-12 一种实现web系统即时通信的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210971326.3A CN115348317B (zh) 2022-08-12 2022-08-12 一种实现web系统即时通信的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN115348317A true CN115348317A (zh) 2022-11-15
CN115348317B CN115348317B (zh) 2024-03-29

Family

ID=83952507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210971326.3A Active CN115348317B (zh) 2022-08-12 2022-08-12 一种实现web系统即时通信的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN115348317B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050080947A (ko) * 2004-02-11 2005-08-18 주식회사 마이엔진 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템
CN101043523A (zh) * 2006-03-21 2007-09-26 腾讯科技(深圳)有限公司 即时消息服务器的登录方法、系统及代理服务器
CN101217554A (zh) * 2008-01-14 2008-07-09 张尧森 网页上实现的即时通讯的方法
CN101299731A (zh) * 2008-05-09 2008-11-05 国网信息通信有限公司 基于Web的即时通讯方法及装置
CN102014078A (zh) * 2010-09-28 2011-04-13 苏州阔地网络科技有限公司 一种网页上实现的基于flash的即时通讯的方法
CN103118137A (zh) * 2013-03-01 2013-05-22 畅捷通信息技术股份有限公司 跨域访问页面装置和跨域访问页面方法
CN106453094A (zh) * 2016-12-27 2017-02-22 儒安科技有限公司 一种网络资源加速访问方法及系统
CN109889425A (zh) * 2017-12-06 2019-06-14 腾讯科技(深圳)有限公司 一种客户端的互动方法、装置及存储介质
CN110661826A (zh) * 2018-06-28 2020-01-07 北京京东尚科信息技术有限公司 代理服务器端处理网络请求的方法和代理服务器

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050080947A (ko) * 2004-02-11 2005-08-18 주식회사 마이엔진 웹 인스턴트 메신저 시스템의 성능 개선 방법 및 시스템
CN101043523A (zh) * 2006-03-21 2007-09-26 腾讯科技(深圳)有限公司 即时消息服务器的登录方法、系统及代理服务器
CN101217554A (zh) * 2008-01-14 2008-07-09 张尧森 网页上实现的即时通讯的方法
CN101299731A (zh) * 2008-05-09 2008-11-05 国网信息通信有限公司 基于Web的即时通讯方法及装置
CN102014078A (zh) * 2010-09-28 2011-04-13 苏州阔地网络科技有限公司 一种网页上实现的基于flash的即时通讯的方法
CN103118137A (zh) * 2013-03-01 2013-05-22 畅捷通信息技术股份有限公司 跨域访问页面装置和跨域访问页面方法
CN106453094A (zh) * 2016-12-27 2017-02-22 儒安科技有限公司 一种网络资源加速访问方法及系统
CN109889425A (zh) * 2017-12-06 2019-06-14 腾讯科技(深圳)有限公司 一种客户端的互动方法、装置及存储介质
CN110661826A (zh) * 2018-06-28 2020-01-07 北京京东尚科信息技术有限公司 代理服务器端处理网络请求的方法和代理服务器

Also Published As

Publication number Publication date
CN115348317B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
US7269784B1 (en) Server-originated differential caching
US8024400B2 (en) Method and system for transferring content from the web to mobile devices
US7191467B1 (en) Method and system of integrating third party authentication into internet browser code
CN108476165B (zh) 一种信息交互方法、客户端和装置
US6941512B2 (en) Dynamic web content unfolding in wireless information gateways
US8006098B2 (en) Integrating legacy application/data access with single sign-on in a distributed computing environment
US8108488B2 (en) System and method for reducing bandwidth requirements for remote applications by utilizing client processing power
US7716281B2 (en) Method and system for transferring content from the web to mobile devices
US5764916A (en) Method and apparatus for real time communication over a computer network
RU2390958C2 (ru) Способ и сервер для обеспечения мультимодального диалога
US8423613B2 (en) System for messaging and collaborating in an intranet environment
US20030122856A1 (en) Remotely controlling a computer via simulated keyboard events
US6862625B1 (en) Method and apparatus for real time network communication
US20040168122A1 (en) System, method and computer readable medium for transferring and rendering a web page
US7398314B2 (en) System and a method for accelerating communication of TCP/IP based content through the use of fake host names
WO1998003923A1 (en) World wide web bar code access system
US20050198149A1 (en) Instant messaging HTTP gateway
EP1489505A2 (en) A system supporting communication between a web enabled application and another application
EP1641217B1 (en) Method, apparatus and system for passing messages to a web browser
US20090199278A1 (en) System and method for authenticating a user of a wireless data processing device
CN115348317B (zh) 一种实现web系统即时通信的方法、装置和系统
WO2001001621A2 (en) Customizing web content based on network conditions
CN116781759A (zh) 基于注册表的客户端调用方法、设备和可读存储介质
US20040030789A1 (en) System and method for testing a protocol
CN113987454A (zh) 一种基于cookie认证机制实现自动化单点登录的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant