CN109120505B - 一种基于mvp模式的安卓客服对话系统及方法 - Google Patents
一种基于mvp模式的安卓客服对话系统及方法 Download PDFInfo
- Publication number
- CN109120505B CN109120505B CN201810660156.0A CN201810660156A CN109120505B CN 109120505 B CN109120505 B CN 109120505B CN 201810660156 A CN201810660156 A CN 201810660156A CN 109120505 B CN109120505 B CN 109120505B
- Authority
- CN
- China
- Prior art keywords
- customer service
- message
- user
- session
- interface
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0281—Customer communication at a business location, e.g. providing product or service information, consulting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Abstract
本发明公开了一种基于MVP模式的安卓客服对话系统,包含坐席端和用户端两个应用端,采用MVP模式在Android环境下实现,坐席端为Android应用,提供登录、在线状态更改、历史会话查询、账户及用户信息设置、会话类型设置、与用户端进行消息交互;用户端为Android SDK,第三方应用能进行配置接入,使用消息通讯服务;本发明采用应用端主动调用后台接口,后台服务器推送消息的异步交互形式,提升性能,采用轻量级的MQTT协议,减少开销和功耗,且支持更高并发,在不稳定网络下可靠性更好。
Description
技术领域
本发明涉及消息交互的研究领域,特别涉及一种基于MVP模式的安卓客服对话系统及方法。
背景技术
随着互联网的发展,在线客服系统在各个行业得到了广泛应用,客服系统已成为展示企业网站形象,加强企业与访客互动的必备工具是打造融合信息服务、市场拓展、电子商务、人力资源管理等综合信息服务平台的一把利剑。
目前,部分企业仍采用第三方即时通讯工具为客户提供客服服务,在线客服应用与传统的即时通讯应用在某些方面存在者一定的相似性,但对于如群组关系、好友关系、社交效应等方面的功能更为弱化,而集中于处理各种业务逻辑,使用第三方即时通讯工具,客服服务独立于企业自身的应用,不利于进行用户管理及各种业务的开展;部分企业提供的在线客服功能与自生产品进行集成,需要在自身应用的基础上自行进行开发,需要投入一定的开发和维护成本,且可能出现与原应用过多的耦合等问题,特别是对于中小型企业,自行开发客服应用需要投入的成本很高。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于MVP模式的安卓客服对话系统,提供了在线客服大部分业务场景下的功能,客服系统用户端为代码侵入性很小的安卓SDK,第三方应用只需简单配置便可使用系统提供的客服服务,同时提供一个相匹配的坐席端应用,供坐席客服人员处理各种客服业务;移动终端采用MVP模式进行开发,代码结构清晰、耦合性小;本发明克服了企业使用第三方即时通讯工具提供客服服务产生的用户管理,客服业务分离等问题,同时也提供了一套第三方应用能够简单集成的客服系统,减少企业的开发和运维成本。
本发明的另一目的在于提供一种基于MVP模式的安卓客服对话方法。
本发明的主要目的通过以下的技术方案实现:
一种基于MVP模式的安卓客服对话系统,包含用户端、坐席端、后台服务器模块;
所述用户端用于用户登录及验证,与坐席端进行信息交互;
所述坐席端包含登录模块、在线客服模块、历史会话模块、账号设置模块、后台运行服务模块;所述登录模块用于客服登录及验证;所述在线客服模块用于实现客服对话业务逻辑,业务逻辑包含:客服在线或离线状态设置、会话接入、消息发送与接收、会话解决状态及分类设置、用户信息获取及设置、结束会话;所述历史会话模块用于查询客服所有历史会话详情;所述账号设置模块用于客服账号的基础信息设置、清理缓存数据;后台运行服务模块用于系统后台服务,系统后台服务包含MQTT模块相关服务、心跳报活服务;
所述后台服务器模块包含Web服务器、MQTT服务器,用于处理用户端和坐席端的HTTP请求并作出响应,查询和修改数据库相关数据;同时通过MQTT服务器对用户端和坐席端进行消息推送,实现信息交互和客服业务逻辑处理。
进一步地,所述用户端,具体用途包括:
进入客服会话界面:第三方应用调用SDK提供的登录接口,将用户账号、用户密码传入,验证成功则进入客服会话界面,用户发送消息,后台服务器模块接收到消息,自动转发给在线客服,创建会话;
采集用户位置信息:当用户进行会话界面时,调用位置服务获取用户地理位置,并进行封装上传到后台服务器模块;
发送消息:将消息封装成Json对象,调用后台发送消息的Http接口,发送成功则在UI线程中更新会话界面并展示消息;
接收消息:接收到消息时,将消息进行解析获得消息类型,在UI线程中更新会话界面并展示;
结束会话:结束会话有用户端结束会话和坐席端结束会话;用户端结束会话;将会话ID封装成Json对象,调用结束会话接口,结束会话并更新UI;坐席端结束会话或会话超时,通过MQTT模块结束会话并更新UI。
进一步地,所述登录模块,具体模块用途包括:
客服登录与验证:进入登录界面,客服使用客服账号和客服密码进行登录,后台服务器对客服账号和客服密码进行验证,验证成功则保存客服账号和客服密码,登录成功并更新UI;验证失败则弹出登录失败提示,回到登录界面;
客服登出:客服点击退出登录按钮,调用logout方法,再通过Http Post调用后台退出登录接口,同时在UI线程中更新UI界面,退出主界面,返回登录界面。
进一步地,所述在线客服模块,具体模块用途包括:
客服在线或离线状态设置:客服登录成功后进入主界面,能进行客服状态的设置,初始默认为离线状态,当客服进行设置选定一个状态时,调用setStatus方法,将选中的状态封装为Json对象,通过Http Post方法,调用后台状态设置接口,完成设置;
会话接入:客服设置为在线状态后,可接入用户,提供客服服务,当接收到后台服务器模块传来的创建会话消息,将创建会话消息进行广播,在线客服接收广播,对广播进行解析,再将创建会话消息传递至UI界面,通知UI界面弹出会话项,点击之后进入对话界面;
消息通信:坐席端发送消息时,调用发送消息方法,将消息内容封装为Json对象,发送Post请求,调用后台服务器模块相应消息接口并发送至后台服务器模块,发送成功则通知UI界面展示消息,将消息封装成Message对象并存储在数据库中;坐席端接收消息时,MQTT模块进行广播,在线客服获取用户消息,对用户消息进行解析,展示用户消息和用户消息形式,将消息封装成Message对象并存储在数据库中;
会话解决状态及分类设置:进入会话界面,解析并获取会话解决状态及分类,能进行修改,在UI线程中对UI界面进行更新;
用户信息获取及设置:进入用户信息界面,解析并获取用户信息,能进行修改或填写,在UI线程中对UI界面进行更新;
结束会话:坐席端主动结束会话和被动结束会话。
进一步地,所述历史会话模块,具体用途包括:
历史会话列表展示:获取历史会话条目,在UI界面更新展示;
历史会话详情:选择历史会话条目,获取选中的历史会话详细会话信息,在UI界面更新展示历史会话详情。
进一步地,所述账号设置模块,具体用途包括:
账号设置:客服使用客服账号登录之后,点击账号信息条目,弹出账号信息设置框,客服能进行选择或填写相关信息,确认保存,在UI线程中对UI界面进行更新并显示;
清理缓存数据:点击清理缓存数据按钮,客服能对应用过程中产生的缓存数据和文件进行清理。
进一步地,所述后台运行服务模块,具体用途包括:
MQTT服务:坐席端运行,后台运行服务模块运行着MQTT服务,客服登录后,后台运行服务模块给坐席端推送MQTT消息,实现后台运行服务模块到坐席端的通信;
心跳报活服务:坐席端运行后,后台运行服务模块运行着线程,定时调用后台运行服务模块报活接口,向后台运行服务模块反馈坐席端运行情况。
进一步地,所述后台服务器模块,包含Web服务器和MQTT服务器,用于响应用户端和坐席端的HTTP请求,查询和修改数据库数据,并通过MQTT服务器对用户端和坐席端进行消息推送,实现信息交互以及客服业务的逻辑处理。
本发明的另一目的通过以下技术手段实现:
一种基于MVP模式的安卓客服对话方法,其特征在于,包括以下步骤:
坐席登录坐席端应用进入应用主界面,主界面分为在线客服、历史会话、账户设置三页,登录后默认处于离线状态,需将状态设置为在线,才能为用户提供客服服务;
用户使用嵌入SDK的第三方应用,通过第三方应用的客服服务入口,用户进入客服对话页面,当用户发送第一条消息时,后台服务器将通过一定的规则找到当前已登录并在线的坐席,将这条消息转发给该坐席端应用,同时将该消息标志位新建会话,坐席端应用接收到创建会话的消息,会在在线客服页出现新建的会话项,会话项显示了用户的头像、名称、消息时间、消息内容,点击会话项能进入与用户的会话聊天界面;
在用户端的会话页面,用户可发送文字消息、语音消息、图片消息和文件,也可拍照发送照片,以及通过地图选点分享位置消息,这一系列消息都将经由后台服务器处理转发至对应的坐席端应用,坐席端接收到消息,会更新主界面中的在线客服页中对应的会话项的最新消息时间和消息内容,如果当前位于会话聊天界面,会在界面中出现新的聊天消息,同样的,坐席端应用也可发送多种类型的消息,通过后台服务器转发至对应的用户端,并在用户端显示;
坐席端应用在会话聊天界面可以设置当前会话的是否已解决以及该会话的分类,可以通过点击用户头像进入用户信息界面,查看和更新该用户的信息;
用户端可以结束会话,发送结束会话消息至后台服务器,后台服务器将其转发至对应的坐席端应用,坐席端应用的在线客服页会将对应的会话项删去,如果当前位于会话聊天界面,会在退出会话聊天界面返回主界面;坐席端也可结束会话,将会话项从在线客服页中删去,发送结束会话消息至后台服务器,转发至对应的用户端,用户端收到结束会话消息后关闭会话聊天界面;同时,如果用户端和坐席端长时间没有进行消息交互,后台服务器会主动结束该会话,并向对应的用户端和坐席端发送结束会话消息,用户端和坐席端收到结束会话消息结束对应会话;
在坐席端应用的历史会话页,能够查看当前登录坐席接入的所有用户会话,点击会话项,能够进入会话详情界面,显示对应会话的对话内容;在会话详情界面也能该会话的解决状态和分类,同时点击用户头像也能查看和更新用户信息;
在坐席端的账户设置页,显示了当前登录坐席的信息,点击相应的信息项,能够修改账户信息;同时,账户设置页还有清理缓存文件按钮和退出登录按钮;点击清理缓存文件按钮,能够清除使用应用过程中产生的缓存,包含图片、语音、视频、文件;点击退出登录按钮,会提示坐席将退出当前账号,点击确定退出登录返回登录界面。
本发明与现有技术相比,具有如下优点和有益效果:
本发明中用户端SDK和坐席端应用均基于MVP模式开发,模块职责划分明显,代码耦合度降低。用户端采用SDK形式,代码侵入性小,第三方应用只需简单配置调用即可接入客服对话系统,在第三方应用内部为用户提供客服功能,无需使用其他客户端;坐席端应用提供了客服服务通用的业务功能,具有应用场景的广泛性;安卓端设备性能有限,采用轻量级的MQTT协议,可减少开销和功耗,支持更高并发,在不稳定网络下可靠性更好。
附图说明
图1是本发明一种基于MVP模式的安卓客服对话系统结构框图;
图2是本发明实施例中方法的用户端结构框图;
图3是本发明实施例中方法的坐席端应用结构框图。
图中,1-登录模块,2-在线客服模块,3-历史会话模块,4-帐号设置模块,5-后台服务模块。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
一种基于MVP模式的安卓客服对话系统,如图1所示,包含用户端、坐席端、后台服务器模块;
用户端用于用户登录及验证,与坐席端进行信息交互;
坐席端包含登录模块、在线客服模块、历史会话模块、账号设置模块、后台运行服务模块;所述登录模块用于客服登录及验证;所述在线客服模块用于实现客服对话业务逻辑,业务逻辑包含:客服在线或离线状态设置、会话接入、消息发送与接收、会话解决状态及分类设置、用户信息获取及设置、结束会话;所述历史会话模块用于查询客服所有历史会话详情;所述账号设置模块用于客服账号的基础信息设置、清理缓存数据;后台运行服务模块用于系统后台服务,系统后台服务包含MQTT模块相关服务、心跳报活服务;
后台服务器模块包含Web服务器、MQTT服务器,用于处理用户端和坐席端的HTTP请求并作出响应,查询和修改数据库相关数据;同时通过MQTT服务器对用户端和坐席端进行消息推送,实现信息交互和客服业务逻辑处理。
本实施例中,使用Android Studio进行用户端与坐席端的开发,使用Eclipse进行后台服务器的开发。
实施例中的用户端,如图2所示,作为Android项目中的一个模块(Module),第三方应用只需引入该模块代码,通过传入必要的参数,调用ChatActivity,可接入客服对话系统,与客服进行消息通信。用户端的代码中存在一个interface包,这个包暴露给使用SDK开发的用户,即SDK中一切提供给用户的API接口都写在这个包中,SDK所需的必要参数也通过这个包中的接口传入。
用户端代码只存在一个页面,即客服对话页面ChatActivity,在这个页面中,提供用户与客服进行文字、语音、图片、文件、地理位置等类型的消息通信的功能。用户端的实现采用MVP架构模式,ChatActivity继承于抽象类ChatActivityContract.View,ChatActivityContract.View定义了各种界面变化的方法,ChatActivity通过实现这些方法实现界面的改动。同时,ChatActivity与一个ChatActivityPresenter实例关联,ChatActivityPresenter继承自ChatActivityContract.Presenter,ChatActivityContract.Presenter中定义了所有业务逻辑的方法,ChatActivityPresenter通过实现这些业务方法实现各种业务操作,读取和修改数据库模型对象,通知界面变化。
用户端使用OkHttp第三方类库进行网络请求,将用户端的消息数据加密后采用Json对象传递参数,通过异步Post方法调用后台接口,上传用户端消息。用户端同时实现一个MQTT模块,订阅一个特定的Topic,等待服务器推送的消息,将接受到的消息使用EventBus进行广播,Activity通过解析服务器推送的消息,在界面上显示相应变化。
用户端SDK主要功能实现如下所述:
进入客服会话界面:第三方应用调用SDK提供的登录接口将用户信息等相关验证消息传入,若验证成功即可进入客服会话界面。当后台接收到用户的第一条消息时,将自动分配客服创建会话。
采集用户位置信息:当用户进入会话界面时,SDK将调用位置服务API获取用户地理位置,将用户当前的地理位置信息封装成Json,调用OKHttp的Post方法将用户地理位置信息上传至后台服务器。
发送文字消息:用户编辑文字消息并点击发送时,会调用ChatActivityPresenter实例中发送消息的方法,将文字信息及其他必要的数据封装成Json对象,调用后台发送消息的Http接口,若发送成功,则在UI线程中调用showMessage方法,更新ChatActivity,展示该文字消息。
发送媒体消息:用户发送其他消息,如图片、视频、语音、文件等,会先将这些媒体文件上传至文件服务器,获得一个文件的url,之后调用ChatActivityPresenter实例中发送消息的方法,将获得的url及其他必要的数据封装成Json对象,调用后台发送消息的Http接口,若发送成功,则在UI线程中调用showMessage方法,更新ChatActivity,展示发送的消息。
发送位置消息:用户端SDK提供发送定位的功能,用户可在地图上选点并发送,同样会调用ChatActivityPresenter实例中发送消息的方法,将取得的地理位置经纬度及其他必要的数据封装成Json对象,调用后台发送消息的Http接口,若发送成功,则在UI线程中调用showMessage方法,更新ChatActivity,通过第三方接口根据经纬度获取该地理位置的地图缩略图,展示该位置消息。
接收消息:当用户端SDK的MQTT模块接收到对话消息时,解析接收到的消息,在UI线程中更新会话界面,根据解析得到消息类型,做出相应的消息UI展示。
结束会话:存在用户主动结束会话和被动结束会话两种情况。当用户点击结束会话时,会调用与ChatActivity关联的ChatActivityPresenter实例的结束会话的方法,将对应的会话ID等信息封装成Json对象,通过Http Post方法,调用后台结束会话接口,并通过UI线程更新UI界面,退出ChatActivity.当坐席结束会话或会话超时时,MQTT模块会接收到结束会话的通知,在UI线程中关闭ChatActivity。
实施例中的坐席端应用是一个完整的Android应用,如图3所示,通过登录验证,坐席用户能够进入坐席端应用的主界面,使用客服会话应用系统提供的各种业务功能。
坐席端应用的主界面由三个Fragment组成,分别实现在线客服模块、历史会话模块、账户设置模块三个模块功能。与用户端类似,通过相应的Presenter实例可以进行数据库的读写操作,处理业务逻辑,并通知界面变化;Activity实现相应的界面方法接口,实现界面的改变。整体采用MVP架构,结构清晰,代码耦合度小。本实施例中,使用了greenDao数据库ORM框架,实现数据对象与数据库的映射,使用OkHttp第三方类库实现网络请求,同时实现一个MQTT模块,接收后台服务器推送的消息。
坐席端应用主要功能实现如下所述:
登录模块:
登录模块主要实现坐席用户登录及验证等功能。
客服登录与验证:客服进入LoginActivity页面进行登录操作,输入账号密码等信息后点击登录按钮,触发与LoginActivity关联的LoginActivityPresenter实例中的login方法,将登录信息加密后封装成一个Json对象,通过OkHttp的Post方法将登录信息传至后台服务器,根据返回的Http响应判断是否登录成功并调用View中的对应方法在UI线程中改变界面。若登录成功,则保存相关登录信息并开启MainActivity主界面;若失败,则弹出登录失败提示。
客服登出:坐席客服点击退出登录按钮,会调用对应的Presenter中的logout方法,通过Http Post调用后台退出登录接口,同时在UI线程中更新UI界面,退出主界面,返回登录界面。
在线客服模块:
在线客服模块是该应用的核心模块,实现客服对话的主要业务逻辑,其功能主要在在线客服CSFragment实现,点击主界面的在线客服栏能进入CSFragment。
客服在线/离线状态设置:客服登录成功后进入主界面,会有一个下拉框控件用来选择设置客服的在线/离线状态,初始默认为离线状态。当客服选定一个状态时,控件将调用MainActivity关联的Presenter实例的setStatus方法,将选中的状态封装进一个Json对象,通过Http Post方法,调用后台状态设置接口。
会话接入:坐席客服设置为在线状态后,可以接入用户提供客服服务。为当MQTT模块接收到后台传来的创建会话消息时,会通过EventBus将消息进行应用内的广播,在线客服Fragment注册了EventBus,会收到该广播信息,之后将消息传递至对应的Presenter实例中,对其进行解析和处理,再将消息内容传递至UI界面,通知界面弹出会话项,点击会话项,可进入对话界面,坐席可与该用户进行各种类型的消息对话。
消息通信:客服端应用的消息接收与发送的实现与用户SDK的实现类似。当坐席发送消息时,调用了对应ChatActivityPresenter实例中发送消息的方法,ChatActivityPresenter实例将用户发送的消息内容封装进一个Json对象,通过OkHttp类库发送Post请求,调用后台服务器相应的消息接口,将Json消息发送至后台服务器,发送成功后将消息内容传递至相应UI界面,通知界面展示已发送的消息,界面将根据不同消息类型展示相应的消息形式,同时,ChatActivityPresenter实例将消息封装成一个Message对象,使用greenDao库相应的方法,将消息对象存入本地数据库message表中;当接受到用户的消息时,MQTT模块通过EventBus进行应用内的广播,在线客服Fragment和对应会话的ChatActivity都注册了EventBus,都能获得该用户发送的消息,通过对应的Presenter实例对消息进行处理和解析,在线客服Fragment对应的会话项会展示接受到的消息内容,更新最新消息时间,ChatActivity将根据消息类型展示对应的消息形式,同时,Presenter实例中也会将消息封装成一个Message对象,通过使用greenDao将该消息存进本地数据库的message表中。
会话解决状态及分类设置:进入ChatActivity会话界面时,会通过调用与ChatActivity关联的ChatActivityPresenter实例中相应的方法调用后台接口获取会话解决状态及分类,解析返回的结果,并在UI线程中调用相应方法在ChatActivity中展示会话的解决状态和分类。点击会话解决状态和分类的前端控件,弹出解决状态及分类的选择浮窗,选择后点击确定,触发ChatActivityPresenter实例中相应的方法,将选择的内容封装成Json对象,通过Http Post方法调用后台接口设置会话解决状态及分类,解析Http响应返回的结果,在UI线程中对UI进行更新。
用户信息获取及设置:在会话页面有一个查看用户信息的按钮,点击该按钮可进入InformationActivity用户信息界面。进入用户信息页面时,会通过调用与InformationActivity关联的InformationActivityPresenter实例中相应的方法调用后台接口获取选中用户的相关信息,解析返回的结果,并在UI线程中调用相应方法在InformationActivity中展示用户信息。点击用户信息条目,弹出对应信息的设置框,选择或填写相关信息后点击确定,触发InformationActivityPresenter实例中相应的方法,将更改的用户信息封装成Json对象,通过Http Post方法调用后台接口更新对应用户信息,解析Http响应返回的结果,在UI线程中对UI界面进行更新。
结束会话:会话的结束有坐席主动结束会话和被动结束会话两种情况。当坐席主动点击结束会话时,会调用对应Presenter实例的结束会话的方法,将对应的会话ID等信息封装成Json对象,通过Http Post方法,调用后台结束会话接口,并通过UI线程更新UI界面,删除客服Fragment会话列表中对应的条目,调用greenDao响应方法删除数据库中相关消息记录,若处于会话界面则关闭会话页面。当接入客服的用户选择结束会话或会话超时时,MQTT模块会接收到结束会话的消息,通过EventBus进行应用内的广播,在线客服Fragment和对应会话的ChatActivity都注册了EventBus,都能获得该结束会话的消息,通过对应的Presenter实例在UI线程中更新UI界面,删除客服Fragment会话列表中对应的条目,调用greenDao响应方法删除数据库中相关消息记录,若处于会话界面则关闭会话页面。
历史会话模块:
历史会话模块提供查询坐席用户的所有历史会话及详情的功能。其功能主要在在线客服HistoryFrabment实现,点击主界面的历史会话栏能进入HistoryFragment。
历史会话列表展示:进入HistoryFragment历史会话列表页面时,会通过调用与HistoryFragment关联的HistoryFragmentPresenter实例中相应的方法调用后台接口获取当前坐席接待过的前20条历史会话信息,解析返回的结果,并在UI线程中调用相应方法在HistoryActivity中展示获取的历史会话条目。滑动历史会话列表,当到达列表底部时,会再次触发HistoryFragmentPresenter实例中获取历史会话的方法,获取接下来的历史会话条目并更新UI展示。
历史会话详情:点击HistoryFragment历史会话列表页面上的历史会话条目,会调用对应Present实例中的方法,将会话ID等信息封装成Json对象,通过Http Post调用后台会话详情接口,解析返回的Http响应,获得选中历史会话的详细对话信息,在UI线程中通过调用View实例中对应的方法,展示该历史会话的对话详情。
帐号设置模块:
帐号设置模块主要实现关于坐席账户的各种基础信息的设置、缓存数据的清理等功能。其功能主要在在线客服SettingsFrabment实现,点击主界面的账户设置栏能进入SettingsFragment。
账号设置:进入SettingsFragment账户设置界面时,会通过调用与SettingsFragment关联的SettingsFragmentPresenter实例中相应的方法调用后台接口获取当前坐席账号的相关信息,解析返回的结果,并在UI线程中调用相应方法在SettingsFragment中展示当前账号信息。点击账号信息条目,弹出对应信息的设置框,选择或填写相关信息后点击确定,触发SettingsFragmentPresenter实例中相应的方法,将更改的账户信息封装成Json对象,通过Http Post方法调用后台接口设置对应账号信息,解析Http响应返回的结果,在UI线程中对UI进行更新。
清理缓存数据:SettingsFragment账户设置界面中存在一个清理缓存数据的按钮,点击该按钮会调用SettingsFragmentPresenter实例中清理缓存数据的方法,将使用应用过程产生的缓存数据和文件进行清理。
后台运行服务模块:
后台运行服务模块指坐席端应用运行于Android后台的各种服务,这些服务没有前台的显示界面,不需与用户进行交互。
MQTT服务:坐席端应用后台运行着MQTT服务,坐席登录后应用会订阅一个特定的Topic,后台服务器给应用推送MQTT消息时使用这个Topic,实现后台服务器到坐席端应用的通信。
心跳报活服务:客服坐席应用后台运行着一个线程,定时调用后台服务器的报活接口,将登录的坐席信息及应用自身的一些运行情况封装成Json对象,向后台服务器反馈应用运行情况。
实施例中,后台服务器采用Spring Boot框架实现,提供各种业务接口供终端应用调用,同时搭建一个MQTT服务器,将各种业务逻辑处理后的结果主动推送至终端应用。
用户端SDK调用后台服务器HTTP接口,将封装好的Json消息传至后台服务器,后台服务器根据接受到的HTTP请求,解析处理得到坐席的订阅的Topic,将消息推送至MQTT服务器该Topic下,MQTT服务器会将该消息推送至对应的订阅了该Topic的坐席端应用。类似地,坐席端应用向用户端发送消息采用同样的方式。
一种基于MVP模式的安卓客服对话方法,包括以下步骤:
坐席登录坐席端应用进入应用主界面,主界面分为在线客服、历史会话、账户设置三页,登录后默认处于离线状态,需将状态设置为在线,才能为用户提供客服服务;
用户使用嵌入SDK的第三方应用,通过第三方应用的客服服务入口,用户进入客服对话页面,当用户发送第一条消息时,后台服务器将通过一定的规则找到当前已登录并在线的坐席,将这条消息转发给该坐席端应用,同时将该消息标志位新建会话,坐席端应用接收到创建会话的消息,会在在线客服页出现新建的会话项,会话项显示了用户的头像、名称、消息时间、消息内容,点击会话项能进入与用户的会话聊天界面;
在用户端的会话页面,用户可发送文字消息、语音消息、图片消息和文件,也可拍照发送照片,以及通过地图选点分享位置消息,这一系列消息都将经由后台服务器处理转发至对应的坐席端应用,坐席端接收到消息,会更新主界面中的在线客服页中对应的会话项的最新消息时间和消息内容,如果当前位于会话聊天界面,会在界面中出现新的聊天消息,同样的,坐席端应用也可发送多种类型的消息,通过后台服务器转发至对应的用户端,并在用户端显示;
坐席端应用在会话聊天界面可以设置当前会话的是否已解决以及该会话的分类,可以通过点击用户头像进入用户信息界面,查看和更新该用户的信息;
用户端可以结束会话,发送结束会话消息至后台服务器,后台服务器将其转发至对应的坐席端应用,坐席端应用的在线客服页会将对应的会话项删去,如果当前位于会话聊天界面,会在退出会话聊天界面返回主界面;坐席端也可结束会话,将会话项从在线客服页中删去,发送结束会话消息至后台服务器,转发至对应的用户端,用户端收到结束会话消息后关闭会话聊天界面;同时,如果用户端和坐席端长时间没有进行消息交互,后台服务器会主动结束该会话,并向对应的用户端和坐席端发送结束会话消息,用户端和坐席端收到结束会话消息结束对应会话;
在坐席端应用的历史会话页,能够查看当前登录坐席接入的所有用户会话,点击会话项,能够进入会话详情界面,显示对应会话的对话内容;在会话详情界面也能该会话的解决状态和分类,同时点击用户头像也能查看和更新用户信息;
在坐席端的账户设置页,显示了当前登录坐席的信息,点击相应的信息项,能够修改账户信息;同时,账户设置页还有清理缓存文件按钮和退出登录按钮;点击清理缓存文件按钮,能够清除使用应用过程中产生的缓存,包含图片、语音、视频、文件;点击退出登录按钮,会提示坐席将退出当前账号,点击确定退出登录返回登录界面。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (7)
1.一种基于MVP模式的安卓客服对话系统,其特征在于,包含用户端、坐席端、后台服务器模块;
所述用户端用于用户登录及验证,与坐席端进行信息交互;用户端具体用途包括:
进入客服会话界面:第三方应用调用SDK提供的登录接口,将用户账号、用户密码传入,验证成功则进入客服会话界面,用户发送消息,后台服务器模块接收到消息,自动转发给在线客服,创建会话;
采集用户位置信息:当用户进行会话界面时,调用位置服务获取用户地理位置,并进行封装上传到后台服务器模块;
发送消息:将消息封装成Json对象,调用后台发送消息的Http接口,发送成功则在UI线程中更新会话界面并展示消息;
接收消息:接收到消息时,将消息进行解析获得消息类型,在UI线程中更新会话界面并展示;
结束会话:结束会话有用户端结束会话和坐席端结束会话;用户端结束会话;将会话ID封装成Json对象,调用结束会话接口,结束会话并更新UI界面;坐席端结束会话或会话超时,通过MQTT模块结束会话并更新UI界面;
所述坐席端包含登录模块、在线客服模块、历史会话模块、账号设置模块、后台运行服务模块;所述登录模块用于客服登录及验证;所述在线客服模块用于实现客服对话业务逻辑,业务逻辑包含:客服在线或离线状态设置、会话接入、消息发送与接收、会话解决状态及分类设置、用户信息获取及设置、结束会话;所述历史会话模块用于查询客服所有历史会话详情;所述账号设置模块用于客服账号的基础信息设置、清理缓存数据;后台运行服务模块用于系统后台服务,系统后台服务包含MQTT模块相关服务、心跳报活服务;
其中,在线客服模块的具体用途包括:
客服在线或离线状态设置:客服登录成功后进入主界面,能进行客服状态的设置,初始默认为离线状态,当客服进行设置选定一个状态时,调用setStatus方法,将选中的状态封装为Json对象,通过Http Post方法,调用后台状态设置接口,完成设置;
会话接入:客服设置为在线状态后,可接入用户,提供客服服务,当接收到后台服务器模块传来的创建会话消息,将创建会话消息进行广播,在线客服接收广播,对广播进行解析,再将创建会话消息传递至UI界面,通知UI界面弹出会话项,点击之后进入对话界面;
消息通信:坐席端发送消息时,调用发送消息方法,将消息内容封装为Json对象,发送Post请求,调用后台服务器模块相应消息接口并发送至后台服务器模块,发送成功则通知UI界面展示消息,将消息封装成Message对象并存储在数据库中;坐席端接收消息时,MQTT模块进行广播,在线客服获取用户消息,对用户消息进行解析,展示用户消息和用户消息形式,将消息封装成Message对象并存储在数据库中;
会话解决状态及分类设置:进入会话界面,解析并获取会话解决状态及分类,能进行修改,在UI线程中对UI界面进行更新;
用户信息获取及设置:进入用户信息界面,解析并获取用户信息,能进行修改或填写,在UI线程中对UI界面进行更新;
结束会话:坐席端主动结束会话和被动结束会话;
所述后台服务器模块包含Web服务器、MQTT服务器,用于处理用户端和坐席端的HTTP请求并作出响应,查询和修改数据库相关数据;同时通过MQTT服务器对用户端和坐席端进行消息推送,实现信息交互和客服业务逻辑处理。
2.根据权利要求1所述的一种基于MVP模式的安卓客服对话系统,其特征在于,所述登录模块,具体模块用途包括:
客服登录与验证:进入登录界面,客服使用客服账号和客服密码进行登录,后台服务器对客服账号和客服密码进行验证,验证成功则保存客服账号和客服密码,登录成功并更新UI界面;验证失败则弹出登录失败提示,回到登录界面;
客服登出:客服点击退出登录按钮,调用logout方法,再通过Http Post调用后台退出登录接口,同时在UI线程中更新UI界面,退出主界面,返回登录界面。
3.根据权利要求1所述的一种基于MVP模式的安卓客服对话系统,其特征在于,所述历史会话模块,具体用途包括:
历史会话列表展示:获取历史会话条目,在UI界面更新展示;
历史会话详情:选择历史会话条目,获取选中的历史会话详细会话信息,在UI界面更新展示历史会话详情。
4.根据权利要求1所述的一种基于MVP模式的安卓客服对话系统,其特征在于,所述账号设置模块,具体用途包括:
账号设置:客服使用客服账号登录之后,点击账号信息条目,弹出账号信息设置框,客服能进行选择或填写相关信息,确认保存,在UI线程中对UI界面进行更新并显示;
清理缓存数据:点击清理缓存数据按钮,客服能对应用过程中产生的缓存数据和文件进行清理。
5.根据权利要求1所述的一种基于MVP模式的安卓客服对话系统,其特征在于,所述后台运行服务模块,具体用途包括:
MQTT服务:坐席端运行,后台运行服务模块运行着MQTT服务,客服登录后,后台运行服务模块给坐席端推送MQTT消息,实现后台运行服务模块到坐席端的通信;
心跳报活服务:坐席端运行后,后台运行服务模块运行着线程,定时调用后台运行服务模块报活接口,向后台运行服务模块反馈坐席端运行情况。
6.根据权利要求1所述的一种基于MVP模式的安卓客服对话系统,其特征在于,所述后台服务器模块,包含Web服务器和MQTT服务器,用于响应用户端和坐席端的HTTP请求,查询和修改数据库数据,并通过MQTT服务器对用户端和坐席端进行消息推送,实现信息交互以及客服业务的逻辑处理。
7.一种基于MVP模式的安卓客服对话方法,其特征在于,包括以下步骤:
坐席登录坐席端应用进入应用主界面,主界面分为在线客服、历史会话、账户设置三页,登录后默认处于离线状态,需将状态设置为在线,才能为用户提供客服服务;
用户使用嵌入SDK的第三方应用,通过第三方应用的客服服务入口,用户进入客服对话页面,当用户发送第一条消息时,后台服务器将通过一定的规则找到当前已登录并在线的坐席,将这条消息转发给该坐席端应用,同时将该消息标志位新建会话,坐席端应用接收到创建会话的消息,会在在线客服页出现新建的会话项,会话项显示了用户的头像、名称、消息时间、消息内容,点击会话项能进入与用户的会话聊天界面;
在用户端的会话页面,用户可发送文字消息、语音消息、图片消息和文件,也可拍照发送照片,以及通过地图选点分享位置消息,这一系列消息都将经由后台服务器处理转发至对应的坐席端应用,坐席端接收到消息,会更新主界面中的在线客服页中对应的会话项的最新消息时间和消息内容,如果当前位于会话聊天界面,会在界面中出现新的聊天消息,同样的,坐席端应用也可发送多种类型的消息,通过后台服务器转发至对应的用户端,并在用户端显示;
坐席端应用在会话聊天界面可以设置当前会话的是否已解决以及该会话的分类,可以通过点击用户头像进入用户信息界面,查看和更新该用户的信息;
用户端可以结束会话,发送结束会话消息至后台服务器,后台服务器将其转发至对应的坐席端应用,坐席端应用的在线客服页会将对应的会话项删去,如果当前位于会话聊天界面,会在退出会话聊天界面返回主界面;坐席端也可结束会话,将会话项从在线客服页中删去,发送结束会话消息至后台服务器,转发至对应的用户端,用户端收到结束会话消息后关闭会话聊天界面;同时,如果用户端和坐席端超过10分钟没有进行消息交互,后台服务器会主动结束该会话,并向对应的用户端和坐席端发送结束会话消息,用户端和坐席端收到结束会话消息结束对应会话;
在坐席端应用的历史会话页,能够查看当前登录坐席接入的所有用户会话,点击会话项,能够进入会话详情界面,显示对应会话的对话内容;在会话详情界面也能该会话的解决状态和分类,同时点击用户头像也能查看和更新用户信息;
在坐席端的账户设置页,显示了当前登录坐席的信息,点击相应的信息项,能够修改账户信息;同时,账户设置页还有清理缓存文件按钮和退出登录按钮;点击清理缓存文件按钮,能够清除使用应用过程中产生的缓存,包含图片、语音、视频、文件;点击退出登录按钮,会提示坐席将退出当前账号,点击确定退出登录返回登录界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810660156.0A CN109120505B (zh) | 2018-06-25 | 2018-06-25 | 一种基于mvp模式的安卓客服对话系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810660156.0A CN109120505B (zh) | 2018-06-25 | 2018-06-25 | 一种基于mvp模式的安卓客服对话系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109120505A CN109120505A (zh) | 2019-01-01 |
CN109120505B true CN109120505B (zh) | 2021-01-19 |
Family
ID=64822028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810660156.0A Active CN109120505B (zh) | 2018-06-25 | 2018-06-25 | 一种基于mvp模式的安卓客服对话系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109120505B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600306B (zh) * | 2019-01-22 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 创建会话的方法、装置和存储介质 |
CN109889590B (zh) * | 2019-01-24 | 2020-09-04 | 北京创鑫旅程网络技术有限公司 | 消息处理方法、装置、客户端和计算机可读介质 |
CN110049134B (zh) * | 2019-04-22 | 2020-04-14 | 苏州紫焰网络科技有限公司 | 客服聊天方法、装置、客服端、服务器及存储介质 |
CN109995644B (zh) * | 2019-04-25 | 2021-08-31 | 北京口袋时尚科技有限公司 | 一种传输消息的方法及装置 |
CN110083694A (zh) * | 2019-04-30 | 2019-08-02 | 广东电网有限责任公司 | 一种基于webhook的电网业务集成方法、装置及存储器 |
CN110213522B (zh) * | 2019-05-27 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法、装置以及相关设备 |
CN110197380A (zh) * | 2019-05-30 | 2019-09-03 | 三峡大学 | 一种自助选择网上客服进行客户服务的方法及装置 |
CN110191047B (zh) * | 2019-05-31 | 2021-07-30 | 拉扎斯网络科技(上海)有限公司 | 会话服务方法、装置、电子设备及计算机可读存储介质 |
CN111679876A (zh) * | 2020-05-25 | 2020-09-18 | 泰康保险集团股份有限公司 | 一种数据处理的方法及装置、电子设备、存储介质 |
CN112187617B (zh) * | 2020-09-01 | 2023-02-14 | 复旦大学附属中山医院厦门医院 | 应用于互联网医疗的消息推送方法、系统及消息业务中台 |
CN113472955B (zh) * | 2021-07-06 | 2023-06-20 | 浙江百应科技有限公司 | 一种坐席状态一致性控制方法及系统 |
CN113727288B (zh) * | 2021-08-31 | 2022-06-24 | 安徽迪科数金科技有限公司 | 一种基于5g消息的静默客服机器人 |
CN116828029B (zh) * | 2023-08-31 | 2023-12-05 | 飞天诚信科技股份有限公司 | 一种支持霸屏模式和远程控制的实现方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942044A (zh) * | 2014-03-18 | 2014-07-23 | 北京领通科技有限公司 | 移动终端应用内的远程协助方法及系统 |
CN104539516A (zh) * | 2014-12-18 | 2015-04-22 | 北京奇虎科技有限公司 | 一种客服服务方法和一种客服服务器 |
CN105721548A (zh) * | 2016-01-20 | 2016-06-29 | 浙江兰科电子有限公司 | 一种麻将机物联网系统 |
US9712481B2 (en) * | 2014-07-31 | 2017-07-18 | Genesys Telecommunications Laboratories, Inc. | Social media feedback for routing user communications |
CN107395738A (zh) * | 2017-08-07 | 2017-11-24 | 北京移数通电讯有限公司 | 一种集成呼叫中心和微信公众号客服的系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130282844A1 (en) * | 2012-04-23 | 2013-10-24 | Contact Solutions LLC | Apparatus and methods for multi-mode asynchronous communication |
-
2018
- 2018-06-25 CN CN201810660156.0A patent/CN109120505B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942044A (zh) * | 2014-03-18 | 2014-07-23 | 北京领通科技有限公司 | 移动终端应用内的远程协助方法及系统 |
US9712481B2 (en) * | 2014-07-31 | 2017-07-18 | Genesys Telecommunications Laboratories, Inc. | Social media feedback for routing user communications |
CN104539516A (zh) * | 2014-12-18 | 2015-04-22 | 北京奇虎科技有限公司 | 一种客服服务方法和一种客服服务器 |
CN105721548A (zh) * | 2016-01-20 | 2016-06-29 | 浙江兰科电子有限公司 | 一种麻将机物联网系统 |
CN107395738A (zh) * | 2017-08-07 | 2017-11-24 | 北京移数通电讯有限公司 | 一种集成呼叫中心和微信公众号客服的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109120505A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120505B (zh) | 一种基于mvp模式的安卓客服对话系统及方法 | |
US10326715B2 (en) | System and method for updating information in an instant messaging application | |
US10834031B2 (en) | Information exchange method, client, and apparatus | |
US10057734B2 (en) | System and method for transmitting and receiving media messages | |
US9615223B2 (en) | Electronic messaging technology | |
US20180167426A1 (en) | Multiplatform Screen Sharing Solution for Software Demonstration | |
US10423966B2 (en) | Method and system for online helpdesk | |
US20220159046A1 (en) | Automated agent for a web communication feature | |
US20180375943A1 (en) | Mobile Event Notifications | |
US20200014622A1 (en) | Apparatus and method for accessing a back-end service | |
WO2014146559A1 (zh) | 对应物联网标记的信息发布方法、系统及终端设备 | |
CN101202716A (zh) | 一种信息存储方法及通讯系统以及相关设备 | |
KR20090001748A (ko) | 기업용 메신저 서비스 제공 시스템 및 방법 | |
CN111585868B (zh) | 一种信息处理方法、装置、计算机设备以及可读存储介质 | |
US20150372960A1 (en) | Method and system for sending messages per channel | |
CN113763008A (zh) | 一种应用推广跟踪方法、装置、服务器、设备和介质 | |
US20190174275A1 (en) | Simultaneous messaging system and method | |
US10405151B2 (en) | Simultaneous messaging systems and methods | |
WO2017214722A1 (en) | Simultaneous messaging system and method | |
CN103092611A (zh) | 一种移动广告api的交互系统及方法 | |
CA2933073C (en) | Simultaneous messaging system and method | |
CA2973712C (en) | Simultaneous messaging systems and methods | |
TWM623759U (zh) | 用於即時通訊平台的客服系統及非暫態電腦可讀取記錄媒體 | |
CN105938474A (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Lu Lu Inventor after: Lai Jinxiong Inventor after: Huang Xiaochuan Inventor before: Lu Lu Inventor before: Huang Xiaochuan |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |