CN111106996A - 一种基于WebSocket和缓存的多终端在线聊天*** - Google Patents

一种基于WebSocket和缓存的多终端在线聊天*** Download PDF

Info

Publication number
CN111106996A
CN111106996A CN201911384141.7A CN201911384141A CN111106996A CN 111106996 A CN111106996 A CN 111106996A CN 201911384141 A CN201911384141 A CN 201911384141A CN 111106996 A CN111106996 A CN 111106996A
Authority
CN
China
Prior art keywords
chat
module
websocket
cache
server
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
CN201911384141.7A
Other languages
English (en)
Other versions
CN111106996B (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.)
Anhui Weiwo Information Technology Co Ltd
Original Assignee
Anhui Weiwo Information 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 Anhui Weiwo Information Technology Co Ltd filed Critical Anhui Weiwo Information Technology Co Ltd
Priority to CN201911384141.7A priority Critical patent/CN111106996B/zh
Publication of CN111106996A publication Critical patent/CN111106996A/zh
Application granted granted Critical
Publication of CN111106996B publication Critical patent/CN111106996B/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]
    • 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/046Interoperability with other network applications or services
    • 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/10Multimedia 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
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

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

Abstract

一种基于WebSocket和缓存的多终端在线聊天***,可解决现有的在线通讯工具时性不好,即时交互性比较差的技术问题。基于计算机设备,包括以下模块:聊天窗口前端自适应客户端页面模块,基于WebSocket和缓存的服务端;所述基于WebSocket和缓存的服务端进一步分为:消息记录缓存处理模块,多聊天室自动分配模块,文件图片语音处理模块,消息实体模块,多线程安全处理模块;本发明可保持长连接,实现浏览器和服务器之间双向实时通讯,即时交互性良好;解决多终端在线通讯,并且解决多线程并发问题;支持多聊天室,实现多客服负载均衡,解决高并发用户咨询问题;支持未读消息提醒数;可模块化,是轻量级的,可以成为独立的分布式***,对外提供服务。

Description

一种基于WebSocket和缓存的多终端在线聊天***
技术领域
本发明涉及计算机技术领域,具体涉及一种基于WebSocket和缓存的多终端在线聊天***。
背景技术
目前,在各个电子商务网站中,特别是外贸行业的电商网站中,常常需要整合聊天模块,而现阶段市面上的大多数电子商务网站,几乎都没有整合实时聊天工具,即使有整合,也是使用独立的第三方的聊天软件,或者使用邮件的方式进行沟通,即时交互性比较差,导致客户选择商品,购买商品很不方便,比如客户不能实时了解商品的性能,尺寸,颜色等参数;
而在企业级管理应用***中,总有这样的需求:***要向所有用户推送***消息,比如***升级公告,任务分配通知,上下线提醒,个人提示信息等。
目前市场上出现了一些解决此类问题的工具,但是现阶段市面上流行的电子商务网站或者企业级管理***的在线通讯工具具有以下几个问题:
(1)一般只是基于发送邮件的方式来进行通讯操作;
(2)有消息阻塞的现象,实时性不好,即时交互性比较差;
(3)不支持多聊天室;
(4)不支持未读的离线消息提醒;
(5)非模块化,是重量级的,无法改成独立的分布式***;
(6)不支持发送emoji表情,也不支持发送文件。
发明内容
本发明提出的一种基于WebSocket和缓存的多终端在线聊天***,可解决现有的在线通讯工具时性不好,即时交互性比较差的技术问题。
为实现上述目的,本发明采用了以下技术方案:
一种基于WebSocket和缓存的多终端在线聊天***,基于计算机设备,包括以下模块:
聊天窗口前端自适应客户端页面模块,基于WebSocket和缓存的服务端;
所述基于WebSocket和缓存的服务端进一步分为:消息记录缓存处理模块,多聊天室自动分配模块,文件图片语音处理模块,消息实体模块,多线程安全处理模块;
其中,所述聊天窗口前端自适应客户端页面模块,用于实现以下步骤:
(1)实现聊天窗口在前端页面的显示,有两种角色展示窗口,分别是客服角色和用户角色,当客服登录时,自动显示客服的聊天窗口,当客户登录时,自动显示客户的聊天窗口;
(2)实现聊天窗口自适应调节窗口大小,通过window.onresize()函数实现自动调节窗口,当调节浏览器缩放比例时,聊天窗口也是自适应调节大小;
(3)实现在聊天窗口前端自适应客户端页面模块中,进行webSocket编程,保持与服务器之间的长连接,当服务器传来消息时,此时分为两种情况:
(3.1)接受者处于在线状态:那么前端页面模块的webSocket对象接收服务器端的信息,webSocket对象再把接收到的消息动态展示到服务器的页面;
(3.2)接收者处于离线状态:那么前端页面模块不做处理,等接收者下次登录时,前端页面模块把离线未读消息全部取出,动态展示到前端页面;
(4)用于实现对于多聊天室情况,在聊天窗口前端自适应客户端页面;
所述基于WebSocket和缓存的服务端,可实现以下步骤:
消息实体模块:用于定义消息的实体类,封装消息数据的必要字段属性;
消息记录缓存处理模块:用于把所有聊天记录都保存到消息记录缓存处理模块,不管用户是在线状态还是离线状态,所有的聊天历史记录都会保存到缓存模块;
多聊天室自动分配模块:用于***管理员在后台手动动态分配有多个客服,每个客服登录之后都是各自聊天室的群主,客户登录之后,根据客户唯一身份计算其hash值,根据hash值自动分配到对应的聊天室中,被分配的聊天室称为”默认聊天室”,客户可以和对应的聊天室群主进行聊天;
多线程安全处理模块:用于实现多线程的安全性,对于多个用户公用的临界资源是线程安全策略保证其线程安全性;
文件图片语音处理模块:用于支持客户和客服之间发送的语音、图片、文件,通过二进制流的形式上传到服务器,上传好之后,文件图片语音处理模块会返回保存的路径地址,并把这个地址保存到缓存中。
进一步的,所述对于多聊天室情况,在聊天窗口前端自适应客户端页面模块中包括以下步骤:
***后台动态分配有多个客服,在前端页面聊天窗口中,每个客服角色是对应聊天室的群主,客户登录时,***根据登录用户所代表的hash值自动分配到对应的聊天室中,实现负载均衡,前端页面模块显示客户自己所在聊天室中,自己和客服的聊天历史记录。
进一步的,所述多线程安全处理模块的线程安全方法包括:自定义本地线程变量,或者使用读安全锁和写安全锁synchronizd,或者使用java.util.concurrent包下的ConcurrentHashMap线程安全Map来实现。
由上述技术方案可知,本发明的基于WebSocket和缓存的多终端在线聊天***具有以下有益效果:
(1)保持长连接,实现浏览器和服务器之间双向实时通讯,即时交互性良好。
(2)解决多终端在线通讯,并且解决多线程并发问题。
(3)支持多聊天室,实现多客服负载均衡,解决高并发用户咨询问题
(4)支持未读消息提醒数。
(5)模块化,是轻量级的,可以成为独立的分布式***,对外提供服务。
(6)聊天窗口自适应。
(7)根据hash值自动分配聊天室,即自动分配到客服那里。
(8)用户在聊天往来信息中,点击网站介绍,商品详情等连接,客服自动回复,实现自助智能回复管理,减轻客服压力。
(9)支持发送表情,图片,截图,文件等。
(10)接收离线未读消息。接收之后,将消息未读状态擦除。
附图说明
图1是本发明的结构框图;
图2是本发明的聊天信息流传输过程示意图;
图3是本发明的webSocket消息发送和接收的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
如图1所示,本实施例所述的基于WebSocket和缓存的多终端在线聊天***,包括:
聊天窗口前端自适应客户端页面模块,基于WebSocket和缓存的服务端,其中基于WebSocket和缓存的服务端进一步可以分为:消息记录缓存处理模块,多聊天室自动分配模块,文件图片语音处理模块,消息实体模块,多线程安全处理模块。
所述聊天窗口前端自适应客户端页面模块,工作原理如下:
(1)聊天窗口在前端页面的显示,有两种角色展示窗口,分别是客服角色和用户角色,当客服登录时,自动显示客服的聊天窗口,当客户登录时,自动显示客户的聊天窗口。
(2)聊天窗口自适应调节窗口大小,主要是通过window.onresize()函数实现自动调节窗口,当调节浏览器缩放比例时,聊天窗口也是自适应调节大小,用户体验效果好。并且还能支持聊天窗口的最小化和展开式,十分方便。
(3)在聊天窗口前端自适应客户端页面模块中,进行webSocket编程,保持与服务器之间的长连接,当服务器传来消息时,此时分为两种情况:
(3.1)接受者处于在线状态:那么前端页面模块的webSocket对象接收服务器端的信息,webSocket对象再把接收到的消息动态展示到服务器的页面。
(3.2)接收者处于离线状态:那么前端页面模块不做处理,等接收者下次登录时,前端页面模块把离线未读消息全部取出,动态展示到前端页面;
(4)对于多聊天室情况,在聊天窗口前端自适应客户端页面模块中的技术方案如下所述:***后台动态分配有多个客服,在前端页面聊天窗口中,每个客服角色是对应聊天室的群主,客户登录时,***根据登录用户所代表的hash值自动分配到对应的聊天室中,实现负载均衡,前端页面模块显示客户自己所在聊天室中,自己和客服的聊天历史记录。
所述基于WebSocket和缓存的服务端,工作原理如下:
(1)消息实体模块:用于定义消息的实体类,封装一些消息数据的必要字段属性,比如发送者,接收者,信息内容,文件地址,发送时间,未读状态等,这样可以方便下面所述模块进行操作数据。
(2)消息记录缓存处理模块:所有聊天记录都保存到消息记录缓存处理模块,不管用户是在线状态还是离线状态,所有的聊天历史记录都会保存到缓存模块。每个用户每次登录时,都从缓存中查询与自己相关聊天历史记录数据,在前端就可以回显聊天记录。
(3)多聊天室自动分配模块:***管理员在后台手动动态分配有多个客服,每个客服登录之后都是各自聊天室的群主,客户登录之后,根据客户唯一身份(可以根据ip地址,客户邮箱等唯一身份)计算其hash值,根据hash值自动分配到对应的聊天室中,被分配的聊天室称为”默认聊天室”,客户就可以和对应的聊天室群主(即客服)进行聊天。这样可以减减轻客服的压力,并且可以减轻服务器线程的压力,实现客服负载均衡。
(4)多线程安全处理模块:在大型网站中,比如电子商务网站中,客户数量庞大,会发生高并发现象,本发明设计了多线程安全处理模块可以实现多线程的安全性,对于多个用户公用的临界资源是线程安全策略保证其线程安全性,线程安全策略有很多种实现方案:比如:自定义本地线程变量,或者使用读安全锁和写安全锁synchronizd,或者使用java.util.concurrent包下的ConcurrentHashMap线程安全Map来实现;
(5)文件图片语音处理模块:本发明支持客户和客服之间发送语音,图片,文件,文字等,多样化的交流方式,提高用户体验度。发送的语音,图片,文件,经过文件图片语音处理模块,将语音,图片,文件等通过二进制流的形式上传到服务器,上传好之后,文件图片语音处理模块会返回保存的路径地址,并把这个地址保存到缓存中。
以下具体说明:
(1)聊天窗口前端自适应客户端页面模块:
在聊天窗口前端自适应客户端页面中进行WebSocket的javaScript编程,当客户和客服登录网站后,浏览器立即发送ws协议的请求到后台基于WebSocket和缓存的服务端,建立ws长连接,这样浏览器和服务器之间就可以通过WebSocket进行实时通讯了。
当webSocket连接成功后,会触发执行webSocket.onopen()事件。
当用户(包括客服和客户)在聊天窗口前端自适应客户端页面中输入文字,语音,图片,文件等,再点击”发送”按钮时,通过javaScript控制,调用webSocket.send()方法,将消息发送给基于WebSocket和缓存的服务端,服务端接收到消息后,会自动执行服务端的onMessage()方法。
当前登录用户在线时,聊天窗口前端自适应客户端页面中接受到消息时,也会自动执行webSocket.onmessage()方法。将收到的消息,通过javaScript方法显示在前端聊天窗口中。
当接收者处于离线状态时,聊天窗口前端页面不做任何操作,在基于WebSocket和缓存的服务端中,将接收者的离线未读消息全部存到redis缓存中,然后,当接收者下次登录时,会调用ajax请求,从redis缓存中加载所有的聊天历史记录,包括已读消息,和离线未读消息,然后将数据渲染到聊天窗口前端页面。
(2)基于WebSocket和缓存的服务端,包括:
(2.1)实体模型模块:包括消息实体模型,响应对象模型。用于封装数据,调用数据,和返回数据。
(2.2)WebSocket连接服务接口及其实现类。
当客户和客服登录网站后,WebSocket连接服务接口会接收到前端浏览器发送的ws协议请求,建立ws长连接,这样浏览器和服务器之间就可以通过WebSocket进行实时通讯了。
当webSocket连接成功后,会触发执行onOpen()方法,利用计数器计算当前登录人数,并使用多线程安全的ConcurrentHashMap保存所有在线用户的session。
当用户(包括客服和客户)在聊天窗口发送消息,点击”发送”按钮时,调用了webSocket。send()方法,所述WebSocket连接服务接口接收到消息后,会自动执行onMessage()方法,通过多线程安全的ConcurrentHashMap获取接收者的session,如果获取不到表示接收者离线,就不发送消息,而将消息保存到redis缓存数据库中,如果能获取到接收者的session,则表示接收者在线,也将消息保存到redis缓存数据库中,然后还调用session。getBasicRemote()。sendText()方法发送消息到浏览器,聊天窗口前端页面接受到消息时,也会自动执行webSocket。onmessage()方法。将收到的消息,通过javaScript方法显示在前端聊天窗口中。
(2.3)用户登录加载数据的服务接口及其实现类。
当用户(包括客服和客户)下次登录时,前端页面会调用ajax请求,从redis缓存数据库中获取聊天历史记录,首先通过第一次循环遍历获取所有用户给当前登录用户发送的所有单向消息,在通过第二次遍历获取当前登录用户发送其他用户的消息,再将所有消息组合起来组成一个Map<String,List<Message>>集合,获取就是当前登录用户与其他所有用户的双向聊天记录。最后再将每组聊天历史记录按照发送时间排序,得到有序的聊天记录,最后再将数据渲染到前端聊天窗口上。
(2.4)多聊天室自动分配模块
***管理员在后台手动动态分配有多个客服,每个客服登录之后都是各自聊天室的群主,客户登录之后,根据客户唯一身份(可以根据ip地址,客户邮箱等唯一身份)计算其hash值,根据hash值自动分配到对应的聊天室中,被分配的聊天室称为”默认聊天室”,客户就可以和对应的聊天室群主(即客服)进行聊天。这样可以减减轻客服的压力,并且可以减轻服务器线程的压力,实现客服负载均衡。
(2.5)多线程安全处理模块:
本模块通过自定义本地线程变量,和多线程安全的ConcurrentHashMap实现的共享数据的多线程安全性,必要时采用读安全锁和写安全锁,来保证多线程安全性。
(2.6)文件图片语音处理模块:
本模块集成了上传文件,图片,语音的方法,使用二进制流,文件流等方式将数据上传到服务器硬盘文件中,将文件,图片,语音持久化,如果是数据量比较大的大型网站,还可以扩展成hdfs分布式文件***。上传好之后,文件图片语音处理模块会返回保存的路径地址,并把这个地址保存到缓存中。
(2.7)消息记录缓存处理模块:
本模块集成了redis缓存数据库的常用的增删改查方法,方便其他模块调用redis缓存常用的增删改查方法,方便开发和管理。
(3)在服务器中安装redis缓存数据库:因为redis缓存数据库的高效性,优良性,是很好的缓存数据库,所以在本实施例中采用redis缓存数据库,作为聊天消息数据的存储介质,保证了所有聊天历史记录不会丢失,即使redis有自动驱逐策略,但是redis自动驱逐策略使用默认的LRU算法,它驱逐的是很久以前不用的聊天记录,而且使用redis分片和集群来扩展redis的内存,也可以解决问题。
综上所述,本发明实施例的具备以下特点:
(1)前端聊天窗口页面,使用Websocket实现发送消息到后台服务器,也可以接收来自服务器的消息。
(2)前端聊天窗口页面,可以实现自适应窗口,提高用户体验度
(3)基于WebSocket和缓存的服务端,通过WebSocket技术实现接收前端发送的消息,并将消息发送给接收者。实现多终端在线实时聊天功能。
(4)通过多聊天室自动分配模块,客户登录之后,将客户自动分配到默认聊天室,实现客服负载均衡,根据客户唯一身份(可以根据ip地址,客户邮箱等唯一身份)计算其hash值,根据hash值自动分配到对应的聊天室中,被分配的聊天室称为”默认聊天室”,客户就可以和对应的聊天室群主(即客服)进行聊天。这样可以减减轻客服的压力,并且可以减轻服务器线程的压力,实现客服负载均衡。
(5)通过封装的多线程安全处理模块,解决数据的多线程的安全性问题,使用自定义本地线程变量,或者使用读安全锁和写安全锁synchronizd,以及使用ConcurrentHashMap线程安全Map来实现,避免高并发导致的数据的错乱。
(6)通过封装的文件图片语音处理模块,从而实现支持用户之间发送语音,图片,文件等,该模块将语音,图片,文件通过二进制流和文件流的形式上传到服务器硬盘,实现文件的持久化。
(7)通过封装的消息记录缓存处理模块,将消息数据全部保存到redis缓存中,保证所有的聊天历史记录都不会丢失。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (3)

1.一种基于WebSocket和缓存的多终端在线聊天***,其特征在于:基于计算机设备,包括以下模块:
聊天窗口前端自适应客户端页面模块,基于WebSocket和缓存的服务端;
所述基于WebSocket和缓存的服务端进一步分为:消息记录缓存处理模块,多聊天室自动分配模块,文件图片语音处理模块,消息实体模块,多线程安全处理模块;
其中,所述聊天窗口前端自适应客户端页面模块,用于实现以下步骤:
(1)实现聊天窗口在前端页面的显示,有两种角色展示窗口,分别是客服角色和用户角色,当客服登录时,自动显示客服的聊天窗口,当客户登录时,自动显示客户的聊天窗口;
(2)实现聊天窗口自适应调节窗口大小,通过window.onresize()函数实现自动调节窗口,当调节浏览器缩放比例时,聊天窗口也是自适应调节大小;
(3)实现在聊天窗口前端自适应客户端页面模块中,进行webSocket编程,保持与服务器之间的长连接,当服务器传来消息时,此时分为两种情况:
(3.1)接受者处于在线状态:那么前端页面模块的webSocket对象接收服务器端的信息,webSocket对象再把接收到的消息动态展示到服务器的页面;
(3.2)接收者处于离线状态: 那么前端页面模块不做处理,等接收者下次登录时,前端页面模块把离线未读消息全部取出,动态展示到前端页面;
(4)用于实现对于多聊天室情况,在聊天窗口前端自适应客户端页面;
所述基于WebSocket和缓存的服务端,可实现以下步骤:
消息实体模块:用于定义消息的实体类,封装消息数据的必要字段属性;
消息记录缓存处理模块:用于把所有聊天记录都保存到消息记录缓存处理模块,不管用户是在线状态还是离线状态,所有的聊天历史记录都会保存到缓存模块;
多聊天室自动分配模块:用于***管理员在后台手动动态分配有多个客服,每个客服登录之后都是各自聊天室的群主,客户登录之后,根据客户唯一身份计算其hash值,根据hash值自动分配到对应的聊天室中,被分配的聊天室称为”默认聊天室”,客户可以和对应的聊天室群主进行聊天;
多线程安全处理模块:用于实现多线程的安全性,对于多个用户公用的临界资源是线程安全策略保证其线程安全性;
文件图片语音处理模块: 用于支持客户和客服之间发送的语音、图片、文件,通过二进制流的形式上传到服务器,上传好之后,文件图片语音处理模块会返回保存的路径地址,并把这个地址保存到缓存中。
2.根据权利要求1所述的基于WebSocket和缓存的多终端在线聊天***,其特征在于:所述对于多聊天室情况,在聊天窗口前端自适应客户端页面模块中包括以下步骤:
***后台动态分配有多个客服,在前端页面聊天窗口中,每个客服角色是对应聊天室的群主,客户登录时,***根据登录用户所代表的hash值自动分配到对应的聊天室中,实现负载均衡,前端页面模块显示客户自己所在聊天室中,自己和客服的聊天历史记录。
3.根据权利要求1所述的基于WebSocket和缓存的多终端在线聊天***,其特征在于:所述多线程安全处理模块的线程安全方法包括:自定义本地线程变量,或者使用读安全锁和写安全锁 synchronizd ,或者使用java.util.concurrent包下的ConcurrentHashMap线程安全Map来实现。
CN201911384141.7A 2019-12-28 2019-12-28 一种基于WebSocket和缓存的多终端在线聊天*** Active CN111106996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911384141.7A CN111106996B (zh) 2019-12-28 2019-12-28 一种基于WebSocket和缓存的多终端在线聊天***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911384141.7A CN111106996B (zh) 2019-12-28 2019-12-28 一种基于WebSocket和缓存的多终端在线聊天***

Publications (2)

Publication Number Publication Date
CN111106996A true CN111106996A (zh) 2020-05-05
CN111106996B CN111106996B (zh) 2022-04-12

Family

ID=70424391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911384141.7A Active CN111106996B (zh) 2019-12-28 2019-12-28 一种基于WebSocket和缓存的多终端在线聊天***

Country Status (1)

Country Link
CN (1) CN111106996B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111739151A (zh) * 2020-06-18 2020-10-02 国网山西省电力公司晋中供电公司 一种变电站三维仿真场景管理方法
CN112073207A (zh) * 2020-11-16 2020-12-11 广州易方信息科技股份有限公司 降低聊天室消息带宽的方法、装置、计算机设备
CN112202904A (zh) * 2020-09-30 2021-01-08 深圳壹账通智能科技有限公司 信息交互方法、装置及介质
CN112637343A (zh) * 2020-12-23 2021-04-09 中国建设银行股份有限公司 文件传输方法、装置及***
CN112653747A (zh) * 2020-12-17 2021-04-13 青岛以萨数据技术有限公司 基于b/s架构的通信方法、***及存储介质
CN112802477A (zh) * 2020-12-30 2021-05-14 科大国创云网科技有限公司 一种基于语音文字转换的客服助理工具服务方法及***
CN112968963A (zh) * 2021-02-23 2021-06-15 上海昊沧***控制技术有限责任公司 基于WebSocket进行用户强制实时下线的方法
CN113157466A (zh) * 2021-04-27 2021-07-23 上海销氪信息科技有限公司 一种消息推送方法、装置、***、电子设备和存储介质
CN113302881A (zh) * 2020-12-01 2021-08-24 百果园技术(新加坡)有限公司 实现在线聊天的方法、装置、聊天终端、服务器及存储介质
CN116016409A (zh) * 2023-01-10 2023-04-25 浪潮软件股份有限公司 一种在线聊天***
CN118101615A (zh) * 2024-04-29 2024-05-28 浪潮云信息技术股份公司 一种实时聊天方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045270A (zh) * 2010-11-30 2011-05-04 北京迅捷英翔网络科技有限公司 聊天服务器***、构建聊天服务器***的方法以及聊天***
CN103856394A (zh) * 2014-03-20 2014-06-11 沈阳化工大学 一种网络聊天室***
CN104751340A (zh) * 2015-03-25 2015-07-01 北京京东尚科信息技术有限公司 客服组分流方法和***
CN107995013A (zh) * 2016-10-26 2018-05-04 腾讯科技(深圳)有限公司 客服分配方法及装置
US20180234506A1 (en) * 2017-02-14 2018-08-16 Gu Zhang System and methods for establishing virtual connections between applications in different ip networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045270A (zh) * 2010-11-30 2011-05-04 北京迅捷英翔网络科技有限公司 聊天服务器***、构建聊天服务器***的方法以及聊天***
CN103856394A (zh) * 2014-03-20 2014-06-11 沈阳化工大学 一种网络聊天室***
CN104751340A (zh) * 2015-03-25 2015-07-01 北京京东尚科信息技术有限公司 客服组分流方法和***
CN107995013A (zh) * 2016-10-26 2018-05-04 腾讯科技(深圳)有限公司 客服分配方法及装置
US20180234506A1 (en) * 2017-02-14 2018-08-16 Gu Zhang System and methods for establishing virtual connections between applications in different ip networks

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111739151A (zh) * 2020-06-18 2020-10-02 国网山西省电力公司晋中供电公司 一种变电站三维仿真场景管理方法
CN112202904A (zh) * 2020-09-30 2021-01-08 深圳壹账通智能科技有限公司 信息交互方法、装置及介质
CN112073207A (zh) * 2020-11-16 2020-12-11 广州易方信息科技股份有限公司 降低聊天室消息带宽的方法、装置、计算机设备
CN112073207B (zh) * 2020-11-16 2021-02-09 广州易方信息科技股份有限公司 降低聊天室消息带宽的方法、装置、计算机设备
CN113302881A (zh) * 2020-12-01 2021-08-24 百果园技术(新加坡)有限公司 实现在线聊天的方法、装置、聊天终端、服务器及存储介质
CN112653747A (zh) * 2020-12-17 2021-04-13 青岛以萨数据技术有限公司 基于b/s架构的通信方法、***及存储介质
CN112637343A (zh) * 2020-12-23 2021-04-09 中国建设银行股份有限公司 文件传输方法、装置及***
CN112802477A (zh) * 2020-12-30 2021-05-14 科大国创云网科技有限公司 一种基于语音文字转换的客服助理工具服务方法及***
CN112968963A (zh) * 2021-02-23 2021-06-15 上海昊沧***控制技术有限责任公司 基于WebSocket进行用户强制实时下线的方法
CN112968963B (zh) * 2021-02-23 2023-03-24 上海昊沧***控制技术有限责任公司 基于WebSocket进行用户强制实时下线的方法
CN113157466A (zh) * 2021-04-27 2021-07-23 上海销氪信息科技有限公司 一种消息推送方法、装置、***、电子设备和存储介质
CN116016409A (zh) * 2023-01-10 2023-04-25 浪潮软件股份有限公司 一种在线聊天***
CN118101615A (zh) * 2024-04-29 2024-05-28 浪潮云信息技术股份公司 一种实时聊天方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111106996B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN111106996B (zh) 一种基于WebSocket和缓存的多终端在线聊天***
US11438291B2 (en) Message history display system and method
US8402095B2 (en) Apparatus and method for instant messaging collaboration
US10693816B2 (en) Communication methods and systems, electronic devices, and computer clusters
KR20140021650A (ko) 전자 메시지로 포워딩되는 링크에 대한 승인 설정
US6801603B1 (en) Online aggregation
US9961125B2 (en) Messaging API over HTTP protocol to establish context for data exchange
US20160269341A1 (en) Distribution of endorsement indications in communication environments
US20110131584A1 (en) The method and apparatus for the resource sharing between user devices in computer network
US20150039675A1 (en) Messaging over http protocol for data exchange
US9686214B2 (en) Status and time-based delivery services for instant messengers
US11528232B1 (en) Apparatus and method for handling real-time tasks with diverse size based on message queue
CN114629866A (zh) 一种多个***之间随机在线客服建立实时通讯的方法
US9942177B1 (en) Method and system for real-time data updates
US9264260B2 (en) System and method of handling read and delivery confirmations for messages
WO2021059113A1 (en) Cachability of single page applications
US20090132659A1 (en) Enhancing Collaboration Opportunities for a Reply to an Electronic Message
CA3109029A1 (en) Multi-channel messaging system
JP2018533797A (ja) 情報送信方法及び装置
KR20240074579A (ko) 응답정보를 기반으로 라우팅 관리를 하는 게이트웨이 장치 및 방법
KR20240084965A (ko) 태스크의 상태를 모니터링하는 게이트웨이 장치 및 방법
CN115955450A (zh) 即时消息显示、推送方法、装置、电子设备及存储介质

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