一种基于WebSocket的信息集成发布方法及系统与流程

    专利查询2022-07-08  164


    一种基于websocket的信息集成发布方法及系统
    技术领域
    1.本发明涉及信息集成发布技术领域,具体涉及一种基于websocket的信息集成发布方法及系统。


    背景技术:

    2.随着当前计算机与网络技术的发展,以及现代化办公场景的需求,各类企业与组织都需要寻求一种集成式的、获取信息和发布信息更加快速便捷的方案。多媒体信息发布系统是目前主流的企业信息发布解决方案,多媒体信息包括文字、声音、图形、图像、动画、视频等等,而多媒体信息发布系统是指能够同时获取、处理、编辑、存储和展示两个以上不同类型信息媒体的技术。在信息发布过程中,由服务器端向客户端推送消息的常用技术主要有以下几种:
    3.第一种是传统轮询方式,分为短轮询和长轮询。由客户端定时向服务器端发送请求获取数据。优点是实现简单,兼容性容错性好,缺点是安全性较差,占用了较多的内存资源去不断发送请求。
    4.第二种方式是ajax轮询:这是一种异步响应机制,即通过不间断的客户端ajax请求,去发现服务端的变化。这种方式由于是客户端主动连接的,所以会有一定程度的延时,并且服务器的压力也不小。
    5.第三种方式是server-sent events(sse):与长轮询机制类似,区别是客户端发送请求后,服务器端响应请求并且仍然保持这个链接,后续可以继续发送消息给客户端,适用于服务端到客户端的单向推送。
    6.以上的各种技术方案可能存在一些安全性差,占用较多计算资源和内存资源的问题。此外,当前背景下信息发布既需要实现服务端向客户端推送消息,也要允许客户端主动地向服务端反馈消息,上述方法难以实现服务器端到客户端的全双工通信。


    技术实现要素:

    7.本发明的目的在于提出一种基于websocket的信息集成发布方法及系统。
    8.实现本发明目的的技术解决方案为:一种基于websocket的信息集成发布系统,包括:信息集成管理端、信息展示客户端、信息发布移动端、信息集成发布后台服务,其中:
    9.信息集成管理端:使用web格式实现,用于为管理人员提供整个系统的综合管理服务,完成客户端管理、版面管理、客户端设备版面播放控制、媒体库资源管理、用户和群组管理、消息推送管理、管理员权限管理、部门管理;
    10.信息展示客户端:使用web格式实现,用于接收后台推送的版面数据,并在屏幕设备上实现版面播放和版面轮播,完成多媒体信息的集成展示;
    11.信息发布移动端:使用微信小程序实现,用于向用户推送消息通知,并接受用户反馈,完成各类通知消息的快速发布;
    12.信息集成发布后台服务:使用spring boot框架实现,用于为整个系统服务的正常
    运转提供数据和功能的支撑,完成数据服务、数据消息推送、数据库管理。
    13.进一步的,所述信息集成发布后台服务,包括:
    14.数据资源的服务接口,用于实现数据库信息资源和多媒体文件资源的综合管理,统一客户端信息、版面信息、媒体库文件、用户信息、管理员信息、用户群组信息、用户消息通知、用户权限信息、用户部门信息,提供增加、删除、修改、查询功能;
    15.websocket连接服务模块,用于为信息展示客户端提供websocket连接服务,包括:(1)建立连接时,通过ip识别建立连接的终端身份,对连接进行身份标记和管理,使各个连接能够与客户端信息相对应,并将客户端的连接状态标记为在线;若终端设备未能与任何客户端信息相匹配,则为其自动注册对应的客户端信息;(2)连接存活时,通过客户端id向对应的在线客户端推送通知消息;接收来自客户端的消息通知,并为客户端消息提供数据和功能服务;通过心跳检测机制监测各连接的存活状态,若连接状态异常则主动断开连接;(3)连接断开时,清除连接身份标记的缓存信息,并将客户端的连接状态标记为离线;(4)利用连接身份标记的缓存信息,随时获取各个客户端的实时在线状态;
    16.以及,为信息发布移动端提供websocket连接服务,包括:(1)建立连接时,通过微信账号信息识别移动端的用户身份,若用户已注册,则对连接进行身份标记和管理,使各个连接能够与用户信息相对应,并将用户状态标记为在线;若用户未注册,则主动断开连接,并通知用户进行注册操作;(2)连接存活时,通过用户id向对应的在线用户推送通知信息;接收来自移动端的消息通知,并为移动端消息提供数据和功能服务;(3)连接断开时,能清除连接身份标记的缓存信息,并将用户状态标记为离线;(4)利用连接身份标记的缓存信息,随时获取各个用户的实时在线状态;
    17.版面任务通知模块,用于为信息展示客户端提供版面任务通知服务,即:(1)不断地监测和筛选出正在执行的版面播放任务,以在规定的时间点向播放任务所关联的客户端设备推送版面播放通知,并在推送完成后缓存播放任务的版本标识号,所述筛选条件包括开始时间、结束时间、起始日期、截止日期、播放时段、星期范围,播放任务的版本标识号由播放任务id和任务相关数据的最后更新时间确定;(2)基于播放任务版本标识号的缓存信息,不断地监测和筛选出停止执行的版面播放任务,当原先正在执行的播放任务停止时,向播放任务所关联的客户端设备推送停止播放通知;(3)基于播放任务版本标识号的缓存信息,当版面播放任务的相关数据发生变更时,通过自动同步机制,使受影响的客户端设备同步运用这些变更,将版面内容的更新同步到屏幕设备上;
    18.通知消息推送模块,用于为信息发布移动端提供通知消息推送服务,包括:(1)不断地监测和筛选出待推送的通知消息,筛选条件包括是否已发送、是否立即发送、发送时间,在规定的时间点向通知消息所关联的用户群体推送新消息;(2)周期性向通知消息所关联的用户推送消息,直至满足停止周期推送的条件。
    19.进一步的,所述信息展示客户端,包括:
    20.版面播放模块,用于提供版面播放和版面轮播服务,包括:(1)通过websocket连接,持续监听来自后台服务的通知消息,包括版面播放通知、停止播放通知;(2)当监听到版面播放通知时,判断通知中的版面播放任务是否已在播放,已在播放则判断播放任务是否有更新,若任务未播放或任务已更新,则自动停止当前播放任务,并开始新的播放任务;(3)当版面播放任务开始时,自动创建版面对象,并由版面对象来创建和管理各个版面控件,在
    屏幕设备上完成版面内容的展示,若需要完成多版面轮播,则还会再创建一个负责完成版面切换的定时任务;(4)版面切换时,使用css过渡动画完成新旧版面的平滑切换,版面切换完成后,创建负责完成下一次版面切换的定时任务,并销毁旧版面对象;(5)当版面播放任务停止时,自动销毁当前的版面对象和版面切换定时任务,在屏幕设备上停止版面内容的展示;
    21.版面预览模块,用于提供版面预览的接口页面,包括:(1)通过url栏参数方式接收待预览版面的id号信息,自动调用后台服务接口获取版面数据,完成版面内容的展示;(2)信息集成管理端的版面管理页面通过内嵌网页的方式,引用此接口页面实现版面内容的预览功能,通过父子网页间交互的方式,实现加载状态反馈、预览版面截图。
    22.进一步的,所述信息发布移动端,包括:
    23.用户信息管理模块,用于实现用户注册、自动登录、账号解绑,包括:(1)在用户打开小程序时,自动申请获取微信账号信息,当获取到微信账号信息后,使用账号信息尝试与后台服务建立websocket连接,若连接建立成功,则从后台服务获取到用户id信息,完成自动登录;若连接建立失败,说明用户未注册,则自动跳转至注册页面,并要求用户进行注册操作;(2)在用户注册页面中,提示用户使用系统账号信息进行登录,当登录成功后,系统用户信息会与微信账号完成绑定,后续为用户提供自动登录服务;(3)当用户需要信息解绑时,将当前绑定的微信账号与用户信息解除绑定;
    24.消息通知模块,用于完成通知消息的实时显示,包括:(1)当用户登录成功后自动跳转到消息列表页面,调用后台服务接口,获取原先已有的消息列表数据,并完成已有消息的展示,其中消息列表的内容采用以发送时间降序的方式进行排列;(2)通过websocket连接,持续监听来自后台服务的新消息通知,当监听到通知时,若为新消息,则将新消息展示到消息列表中;若为已有消息,则对已有消息的内容进行更新;(3)将通知消息按类别分为阅读类消息和任务类消息两种类型,前者只需要让用户阅读,而后者还需要让用户完成指派的任务,消息列表中显示的消息条目,会依据消息的类型和完成状态,分为未读消息、已读消息、未完成任务、已完成任务四种类型来进行显示;(4)由用户对消息条目进行隐藏设置,隐藏后用户的消息列表中将不再显示此消息,而对管理员和其他用户无影响;(5)采用分页加载方式,当用户下滑列表时,会自动调用后台服务接口获取后续内容,并显示到列表末端,实现用户无感知的分页加载功能;(6)当用户在消息列表顶端进行上滑操作时,会调用后台服务接口获取已有消息条目的数据,并刷新消息列表中的数据内容;(7)自动刷新功能配置,开启后,自动定期刷新消息列表数据;
    25.信息交互模块,用于提供消息内容阅读和用户操作反馈功能,包括:(1)用户点击消息列表中的消息条目时,弹出消息详情弹窗,供用户阅读消息的详细内容;(2)当消息为任务类消息,且用户未完成此消息所指派的任务时,显示“完成任务”按钮,由用户点击按钮来反馈自己已完成此项任务;(3)将用户的阅读操作、阅读时间、完成任务操作、完成任务时间,通过调用接口的方式反馈给后台服务。
    26.进一步的,所述信息集成管理端,包括:
    27.登录鉴权模块,用于提供用户登录和用户鉴权服务,包括:(1)由管理人员通过管理员账号进行用户登录;(2)基于账号关联的角色信息,以及角色信息关联的操作权限,对登录的用户账号进行鉴权,仅为其提供权限范围内的功能服务,实现基于操作权限的功能
    服务差异化;
    28.客户端信息管理模块,用于提供客户端信息管理服务,对屏幕设备进行全面管理,包括:(1)提供客户端信息的添加、删除、查看和修改服务;(2)查看各个客户端的实时在线情况;(3)提供客户端信息的分页浏览功能和模糊搜索功能,供用户通过版面的名称或描述中的关键字,查找所需的版面和模板;
    29.版面管理模块,用于提供版面管理服务,包括:(1)将版面按用途分为普通版面和版面模板,版面模板用于快速完成新版面的创建;(2)提供版面与模板的分页浏览和模糊查询功能;(3)当用户需要创建版面或模板、使用模板快速创建新版面、修改现有的版面或模板时,自动跳转到版面设计页面,在其中完成版面内容的创建、设计与编辑;(4)结合信息展示客户端提供的版面预览接口页面,为用户提供版面预览功能,包括小窗口预览、暂停预览并查看版面截图、从暂停中恢复预览、大窗口预览;(5)提供版面与模板的删除功能;
    30.版面设计模块,用于提供版面设计服务,包括:(1)提供对版面基本信息的配置功能,版面基本信息包括名称、描述、分辨率、背景色和背景图;(2)通过选择控件栏中版面控件,并拖拽到版面区域内,完成新控件的创建;(3)通过拖拽版面控件及其边框,来修改控件的位置、大小和长宽比;(4)通过点击控件中的删除按钮,从版面中删除已有控件;(5)通过单击、双击、右击、使用右键菜单栏、使用配置栏、使用富文本编辑器、从媒体库中选择资源文件、使用表格编辑器,设置控件的可配置内容;(6)通过点击保存按钮,完成新版面的创建和修改,或完成旧版面的修改;
    31.播放任务管理模块,用于提供播放任务管理服务,包括:(1)以日历的形式,综合展示播放日程规划,包括当天播放的版面名称、执行播放的客户端名称,通过调整当前显示的年月,查看过去、现在及未来的播放日程规划;(2)通过点击日历中的方格,来查看当天的播放日程详情,包括当天执行播放任务的客户端名称、各个客户端播放的版面名称、各个客户端的播放时段,通过点击客户端信息条目上的删除按钮,将客户端从此播放任务中移除,若此播放任务未与其它客户端相关联,则一并删除播放任务;(3)提供播放任务的筛选功能,基于关联的客户端、版面,对日历和播放日程详情中显示的播放任务信息进行筛选;(4)提供播放任务创建功能,通过设置任务播放时间的限制条件、关联的客户端列表、关联的版面列表、各个版面的播放顺序、各个版面的播放时长,创建新的播放任务,若仅关联了一个版面,则客户端播放时仅需完成版面内容展示,不受播放时长限制;若同时关联了多个版面,则客户端播放时需要完成多版面轮播,即依据指定的播放顺序和播放时长,来轮流展示各个版面内容;
    32.媒体库管理模块,用于提供媒体库管理服务,包括:(1)提供具备文件目录结构的媒体库管理功能,通过进入任意子文件夹或返回父目录,查看各级目录下的文件夹及文件,对文件夹及文件进行单选、多选、全选,并执行各类管理操作;(2)提供缩略图模式和列表模式这两种不同的目录显示模式;(3)提供资源文件上传功能,将本地的多媒体文件上传到当前文件夹下;(4)提供创建文件夹功能,通过输入文件夹名称,在当前目录下创建一个新的子文件夹;(5)提供多媒体文件的预览功能,打开弹窗,以大窗口形式来预览图片或视频;(6)提供文件夹及文件的剪切和粘贴功能,通过选择单个或多个文件夹及文件并剪切,将剪贴的内容粘贴到其它的非子孙目录下;(7)提供文件夹及文件的批量删除功能;(8)提供了文件夹及文件的重命名、下载功能;
    33.消息推送管理模块,用于提供消息推送管理服务,包括:(1)提供移动端消息的分类展示功能,移动端消息按类别分为通知类、提醒类和任务类三种类型,其中前两者为阅读类消息,仅需用户完成阅读,而任务类则需要用户完成指派的任务;(2)提供消息列表的分页浏览、条件筛选和模糊搜索功能,通过消息来源和推送时间来对消息进行筛选,或者通过接收人名字中的关键字查找用户所接收的消息列表;(3)通过点击消息条目,查看此消息所关联的各个用户的完成情况,包括是否已阅读、阅读时间、是否已完成任务、任务完成时间;(4)提供消息推送任务的创建功能,选择消息类别、设置接收消息的群组和人员、输入消息内容、选择是否立即推送、设置推送时间;(5)通过点击消息条目中的删除按钮,删除此条消息;
    34.用户管理模块,用于提供管理员用户管理、移动端用户管理、管理员角色管理的服务,包括:(1)提供列表展示、分页浏览和模糊查询的功能,通过名称中的关键字,查找所需的信息列表;(2)提供管理员用户与移动端用户的创建、修改和删除功能,以及管理员角色信息的创建、权限配置和删除功能;(3)为管理员用户配置其承担的管理员角色,或为普通的移动端用户赋予管理员角色,使其升级为管理员账户,通过关联管理员角色,为用户赋予相对应的操作权限;(4)提供用户信息的批量导入导出功能,以excel表格形式保存;
    35.部门管理模块,用于提供部门管理服务,包括:(1)提供树状结构的部门层级关系展示功能,以查看和修改机构的层级关系,部门层级关系会与版面播放任务的优先级相关联,高层级部门的管理员能够管理下属部门的客户端设备,并进行版面的插播;(2)提供部门信息的创建、修改和删除功能;(3)提供查看和修改部门成员的功能,上级部门能够包含下属部门的成员,但直属成员和下属部门成员的显示颜色有区别,方便管理员辨别;(4)通过查看和修改部门客户端设备的功能,上级部门能够包含和使用下属部门的客户端设备,但直属的客户端设备和下属部门关联的客户端设备,其显示颜色会有区别,方便管理员辨别。
    36.一种基于websocket的信息集成发布方法,基于所述的基于websocket的信息集成发布系统,实现基于websocket的信息集成发布。
    37.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,基于所述的基于websocket的信息集成发布系统,实现基于websocket的信息集成发布。
    38.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,基于所述的基于websocket的信息集成发布系统,实现基于websocket的信息集成发布。
    39.本发明与现有技术相比,其显著优点为:1)在日常生产环境下,可实现在液晶显示屏、等离子大屏、电视机、投影仪、移动端等设备上播放实时资讯、生活信息等各类信息,具备信息推送、展示、收集等功能。2)承担版面播放功能的信息展示客户端部分采用web格式开发,具备良好的跨平台能力,可运行在各种主流的操作系统上,解决屏幕设备不兼容的问题。3)管理员能够一键式地向个人用户或用户群体发布消息通知,并查看用户的操作反馈,实现通知消息和任务信息的高效发布。4)管理员可通过所见即所得的可视化版面编辑方式,来创建、编辑和预览版面内容,并自定义版面的样式,版面内支持添加各种主流的多媒体控件,例如文本、图像、视频、表格等等。5)管理员可创建、设计和修改版面模板,并基于模
    板快速地创建新的版面,大幅简化版面内容的过程。6)管理员可以提前制定客户端的版面播放任务,查看任务日程规划,随时删除已有任务。通过管理版面播放任务,可以一键式地将设计好的版面内容播放到指定设备上,完成多类信息的有机整合与图形化展示,实现无接触式的远程屏幕设备管理。7)支持版面内容的动态更新,当管理员对版面内容进行了修改后,各屏幕设备上正在播放的版面内容也会立即动态更新,无需额外进行任何的软硬件操作。8)提供了统一的服务接口,可为外部系统服务提供信息推送及获取用户反馈的功能服务,避免信息发布功能的重复开发,帮助企业实现各类信息的统一集成与高效发布。9)提供了基于多级部门结构的版面插播功能,管理员可以对下属部门的客户端设备进行管理,指派更高优先级的版面播放任务,实现版面的插播。
    附图说明
    40.图1是信息展示客户端连接流程图。
    41.图2是信息发布移动端连接流程图。
    42.图3是版面创建的结构和流程图。
    43.图4是客户端管理页面效果图。
    44.图5是新增客户端页面效果图。
    45.图6是版面管理页面效果图。
    46.图7是版面设计页面效果图。
    47.图8是消息推送管理页面效果图。
    48.图9是新增消息推送页面效果图。
    具体实施方式
    49.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
    50.本发明信息集成发布方法及系统,为各级组织提供了一种推送和获取信息更加快速便捷的途径,用于在液晶显示屏、等离子大屏、电视机、投影仪、移动端等设备上播放实时资讯、生活信息等各类信息,具备信息推送、展示、收集等功能。整个系统共分为信息集成管理端、信息展示客户端、信息发布移动端和信息集成发布后台服务四个部分。管理员可在信息集成管理端,根据不同环境不同对象来发布不同的信息。信息展示客户端可以将发布的信息展示给受众,以达到发布信息的功能;同时,还能够向信息发布移动端的个人用户推送消息通知,并具备用户操作反馈功能。
    51.一、对websocket连接的标记和管理
    52.信息展示客户端和信息发布移动端,均是采用websocket连接作为与后台服务间的主要连接方式。由于两者均存在着多设备同时在线的情况,所以后台服务需要对客户端或移动端发起的各个连接进行标记和管理,以实现对各连接来源的快速识别,便于向某个客户端或移动端推送消息。
    53.依据websocket连接的生命周期,可以将对客户端连接的标记和管理划分为多个阶段,依次为:
    54.1、连接建立时:
    55.对于客户端发起的连接,后台服务会在连接建立时,获取客户端设备相对于后台服务的网络ip,通过ip信息可查询客户端信息是否已注册,若已注册,则可以识别出客户端身份并缓存。
    56.对于移动端发起的连接,由于本平台的移动端采用微信小程序的方式实现,所以后台服务会首先获取小程序中的唯一标识openid,通过openid可查询用户信息是否已注册。若已注册,则可以识别出用户身份并缓存;若未注册,则断开连接并要求用户进行注册操作。
    57.2、连接存活时:
    58.连接存活,意味着终端已连接,此时可以正常向其推送各类通知消息。
    59.通过连接心跳检测机制(连接心跳检测:周期性地通过连接发送消息,并等待对方应答,若收到应答则说明连接正常,否则说明连接状态异常),可以检测连接实际的存活状态。若连接心跳检测失败,则说明连接已断开(最典型的情况是网络连接突然被断开),可以执行连接断开后的一系列处理操作。
    60.借助于连接终端身份的缓存信息,后台服务能够迅速找到某个终端所对应的连接,实现通知信息的快速推送,并且还能获取到所有客户端和移动端的实时在线情况。当接收到连接消息时,也能够迅速识别出消息发送者的身份,对消息请求做出正确的回应。
    61.3、连接断开时:
    62.当连接正常断开,或通过连接心跳检测机制发现连接断开时,后台服务会自动清除此连接对应的终端身份缓存信息,以表示客户端或移动端已离线,后续将不再向此连接推送消息。
    63.二、版面播放任务数据的筛选和推送
    64.由于各台设备上的时间可能不统一,所以版面播放任务的执行将以后台服务的时间为准。后台服务会依据管理员所指定的播放任务,在正确的时间点,向指定的客户端设备推送通知信息,以实现全自动的版面播放和停止播放。
    65.在后台服务运行过程中,会维持一个用于播放任务执行的定时任务。当此定时任务执行时,会依次执行以下处理操作:
    66.1、从所有版面播放任务中,筛选出当前正在执行的播放任务。具体的筛选条件由播放任务中的配置信息决定,可能包含开始和结束时间、起始和截止日期、任务可执行的星期范围、任务的优先级等等。
    67.2、通过播放任务数据,可提取到其对应的版面数据列表和客户端信息列表。将多类数据信息进行组合,就可以生成版面播放通知中的具体数据内容。
    68.3、依据播放任务关联的客户端信息列表,即可向此任务对应且在线的客户端设备推送版面播放通知。为避免出现重复发送的问题,在推送通知消息前,需要查询缓存并判断是否已推送过此通知,若是则不再推送。在通知推送后,将通知内容的关键信息提取组合为一个字符串并缓存。这样就完全避免了重复发送无效通知的问题,将websocket连接的数据交互量降低至最小化,大幅降低网络带宽和数据流量的负担。
    69.除了推送版面播放通知外,后台服务还承担着推送结束播放通知的任务。在定时任务中,由于已经筛选出当前正在播放的版面任务信息,再配合上先前播放任务的缓存记
    录,就可以推断出哪些播放任务在此时被终止。即可清除这些播放任务的缓存记录,并向对应的客户端推送结束播放通知。客户端在接到通知后,就会停止对应的版面播放任务。
    70.三、任务数据变更的自动同步
    71.在版面播放功能中,还需要解决播放任务的自动更新问题。(例如:当正在播放的版面内容发生变化时,如何让客户端播放更新后的新版面)。
    72.在本平台中,通过功能逻辑的简单设计,即可实现任务数据变更的自动同步功能:
    73.在生成版面播放通知时,后台服务会结合与播放任务相关的各类数据,例如:播放任务数据、相关联的版面数据、关联表数据等等,计算版面播放任务相关数据的最后更新时间,将最后更新时间与播放任务的id号相结合,即可得到播放任务数据的准确版本标识号。一旦任务相关数据发生任何关键变更,都会导致此版本标识号出现差异。
    74.在记录播放任务的缓存信息时,播放任务的版本标识号即为缓存记录中的关键字。一旦播放任务的相关数据发生任何关键变更,原版本的播放任务就会被后台服务和客户端视为已结束,而新版本的播放任务则会被视为已开始,后台服务随即会通知受影响的客户端,迅速完成版面播放任务的自动变更。
    75.四、模块化、分层级实现版面播放的能力
    76.信息展示客户端在接到来自后台服务的版面播放通知消息后,需要完成版面播放或多版面轮播。
    77.在本平台中,该部分采用web格式实现,将版面播放管理的整体功能逐层分级,每一层级又按功能划分为多个子模块,使各个子模块间的耦合度低,甚至无耦合,然后通过多模块组合来形成版面播放的能力。遵循了高内聚、低耦合的设计思想,不仅可以实现完整的系统功能,还能显著增强功能的可拓展性。
    78.从上至下,可以将客户端的功能模块划分为以下多个层次:
    79.1、播放任务管理层:
    80.此层级为逻辑层,主要负责建立、管理和监听websocket连接。当接收到版面播放或停止等类型的通知消息时,依据通知消息执行处理操作,如:
    81.(1)当接收到版面播放通知时,依据通知中播放任务的版本标识号,判断此任务是否正在播放。若未播放,则停止当前正在播放的任务,并创建通知中的新任务。
    82.(2)当接收到停止播放通知时,依据通知中播放任务的版本标识号,判断此任务是否正在播放,若在播放,则会结束此任务,进入无播放任务的状态。
    83.2、版面管理层:
    84.此层级也为逻辑层,主要负责管理版面对象的创建、销毁和切换,由播放任务管理层或版面预览页面调用。
    85.(1)在创建新播放任务时生成,并在结束播放任务时销毁。
    86.(2)在版面预览页面获取到版面数据后,完成版面显示相关任务。
    87.承担的功能,包括版面显示和版面轮播:
    88.(1)版面显示:
    89.a.对象创建时,创建对应的版面对象,完成版面显示。
    90.b.对象销毁时,销毁对应的版面对象,停止播放版面。
    91.(2)版面轮播:
    92.a.对象创建时,依据顺序创建首个版面的对象,然后依据当前版面的播放时长,创建一个定时任务完成版面切换:当定时任务执行时,创建下一个版面的对象和新的版面切换定时任务,并使用过渡动画完成版面切换。在切换完成后销毁旧版面对象,节约内存资源。
    93.b.对象销毁时,销毁当前正在播放的版面对象及用于版面切换的定时任务。
    94.3、控件管理层:
    95.此层级为版面的实现层,主要负责版面背景和控件对象的管理。
    96.(1)对象创建时,首先依据配置项设置版面的背景色或背景图片,然后依次创建版面内的各个控件对象,向控件传递配置数据。其中,控件对象的加载方式采用懒加载,依据控件类型动态加载对应的功能控件,实现控件层的完全解耦。
    97.(2)对象销毁时,其所包含的控件对象也会一并销毁。
    98.4、控件实现层:
    99.此层级为版面内功能控件的实现层,负责实现提供特定功能服务的页面组件,例如文本、图片、视频等类型的控件。控件通常都只负责实现一种功能服务,由于功能差异性,各类控件将可实现零耦合。
    100.控件运行时会解析和处理配置项数据,来提供差异化、可配置的功能服务。配置项数据可分为多种类型,其中一部分为通用配置项,在各类型控件中均通用,且效果一致,如:控件的长、宽、位置等信息;另一部分为特殊配置项,在各类型控件中不通用,且效果可能不一致,仅在部分控件中发挥特定的作用,如:图片和视频控件的数据源信息、文本控件的富文本内容等信息。
    101.综上所述,通过模块化、分层级的功能设计,信息展示客户端的整体设计架构清晰明确,各功能模块间实现解耦,利于功能组件的拓展开发,使信息展示的能力能够不断增强,符合高内聚、低耦合的设计思想。
    102.五、版面数据转化生成
    103.通过信息集成管理端、后台服务和信息展示客户端这三个子系统的紧密合作,能够使管理员设计的版面内容,从图形化的页面设计转化为版面数据,然后再解析呈现给观众,实现所见即所得的版面设计能力。这一过程的实现,不仅要求版面数据格式统一规范,还需兼顾到各类页面组件对于可配置项的拓展需求。
    104.在数据格式的设计上,版面数据采用了分层级的结构设计:
    105.1、版面数据层:
    106.记录版面的基础配置项数据,例如:id、名称、描述、控件内容、屏幕分辨率、背景色/背景图片、是否为模板页面等等。控件内容最为关键,其中罗列了版面内所有页面组件的配置数据。
    107.2、控件数据层:
    108.记录单个页面组件的配置数据,包含多条字段信息,主要包括:控件类型、位置坐标、控件长宽、特殊配置项等等。除特殊配置项外,其余内容均为通用型配置项,在各类版面组件均通用,且效果一致。
    109.3、特殊配置项:
    110.记录仅在特定控件中生效的配置数据,包含零或多条字段信息,每条字段信息能
    记录针对当前组件的一项配置内容。这些字段信息,均为组件特有的配置项,在其它组件中不通用,且效果可能不一致,其解析和生效逻辑由组件自行实现。例如:图片和视频控件的数据源信息、文本控件的富文本内容等等。
    111.基于统一规范的数据格式,可以实现版面数据的转换生成:
    112.1、当用户新建一个控件时,就会在控件列表的缓存信息中,建立一个与之相对应的版面数据对象,将类型、长宽和位置等通用型数据记录在内。
    113.2、当用户修改控件的长宽和位置时,也会一并修改其数据对象中对应的信息。
    114.3、当用户选中某一控件时,依据该控件所支持的特殊配置项类型,为用户提供对应的配置交互功能。用户通过使用这些配置交互功能,可以调整特殊配置项的属性值。
    115.4、当用户删除控件时,就会从控件列表的缓存信息中,删除掉对应的版面数据对象。
    116.5、当用户保存版面时,将缓存中记录的版面基础数据和控件列表数据进行合并转化,即可生成最终的版面数据。
    117.六、版面显示效果的预览
    118.在信息集成管理端中,除了设计版面外,管理员通常还有预览版面的需求。由于信息展示客户端具有呈现版面效果的能力,所以其需要提供一个用于版面预览的接口页面:将待预览版面的id号作为参数传递给版面预览页面,页面在获取到版面id后,调用后台服务接口获取版面数据,然后解析数据并完成版面显示。
    119.当需要进行版面预览时,管理端仅需通过内嵌网页的方式,即可加载所需的版面预览页面。当需要版面预览截图等内容时,也可以通过父子网页间的交互来实现。
    120.七、版面播放任务的管理
    121.在信息集成管理端中,需要为管理员提供版面播放任务的查看和管理功能。管理员可以提前制定客户端的版面播放任务,查看任务日程规划,随时删除已有任务。通过管理版面播放任务,一键式地将设计好的版面内容播放到指定设备上,完成多类信息的有机整合与图形化展示,实现无接触式的远程屏幕设备管理。
    122.1、查看播放任务的日程规划:
    123.在真实的办公场景中,往往会出现版面播放任务数量多、任务日程相互交叉的情况,如何有条不紊地完成日程规划展示将会是一项挑战。
    124.在管理端中,采用了日历方式来完成日程规划的呈现。以日历方格形式展示某月内每一天的日程信息,包括播放的版面名称、执行播放的客户端等等。用户可以通过切换年月,来查看过去、现在和未来的日程规划情况。
    125.当用户点击日历中的某个方格时会弹出日程详情弹窗,其中会详细地展示这一天内各个客户端所播放的版面内容以及播放的时间段。
    126.2、创建播放任务:
    127.用户可以通过点击按钮打开创建播放任务的弹窗,在其中设置各项配置信息,并点击保存,即可创建新的播放任务。
    128.本平台的播放任务主要有两种分类:
    129.(1)时间段类型:通过设置任务的开始时间和结束时间,来限制播放任务生效的时间范围。
    130.(2)时间点类型:通过设置任务的起始日期和结束日期,以及日期范围内每天的播放时段,来限制播放任务生效的时间范围。
    131.除了基本的时间范围配置外,还提供了其它的一些配置功能,例如:设置任务生效的星期范围、选择客户端设备、选择一个或多个待播放的版面、设置多个版面的播放顺序以及各自的播放时长等等。
    132.3、删除播放任务
    133.在日程详情弹窗中,不仅可以查看当天详细的日程规划,还可以通过点击按钮,移除某个客户端承担的播放任务:将该客户端与此播放任务的关联解除,若此播放任务仅与该客户端相关联,则一并删除播放任务。不仅实现了播放任务的删除功能,还使任务的删除能够精细化到具体的每个客户端。
    134.八、移动端消息的筛选和推送
    135.同理于信息展示客户端部分,信息发布移动端也需要后台服务提供消息通知的筛选和推送服务。由于移动端在登录成功时会自动获取消息数据列表,所以后台服务仅需承担新消息的推送任务即可。
    136.从数据库中提取并筛选到待推送的新消息列表后,由于消息推送任务分为两种类型——单次推送和周期推送,所以需要依据任务类型选择对应的处理方式。
    137.1、单次推送:
    138.获取每条消息对应的用户群体,然后给当前在线的移动端推送消息通知,并将该条消息的状态标记为已发送,且记录发送时间。移动端在接到消息通知后,自动显示该条消息。
    139.2、周期推送:
    140.为每个周期推送任务创建一个定时任务,并交由线程池管理。定时任务会按照指定的时间周期不断地推送消息,直至满足此周期任务的终止条件。每次推送成功后,将该条消息的状态标记为已发送,且更新发送时间。移动端在接到消息通知后,自动显示该条消息,若已显示过该条消息,则将该条消息置顶。
    141.九、移动端的消息显示和操作状态反馈
    142.信息发布移动端,负责向普通用户推送消息通知,并接受用户反馈。作为与普通用户进行交互的客户端,它本身需要更多地考虑用户的日常使用习惯。
    143.1、消息的显示:
    144.与后台服务间的websocket连接,会在登录成功后建立。当用户完成登录并进入消息列表页面后,页面会首先调用后台服务提供的rest接口,获取并显示过去已发布的通知消息,而后续的新通知消息则是通过监听连接通知的方式来获取和显示。
    145.为减轻数据获取的压力和延迟,后台服务提供的“获取消息数据列表”接口采用了分页设计:将消息数据以其发送时间进行降序排序,并进行分页。而移动端则采用了下滑时自动加载下一页的方式,在用户无感知的情况下,就实现就自动完成了消息数据的分页加载。除列表下滑自动加载分页外,还提供了上滑列表时自动刷新列表等功能,来方便用户操作。
    146.2、消息的隐藏:
    147.为方便用户对部分信息进行隐藏,消息列表页面提供了消息隐藏的功能:调用后
    台服务提供的“消息隐藏”接口,将用户与该条消息的关联数据中的隐藏状态标记为隐藏。被隐藏的消息,将不再显示到用户的消息列表中。
    148.3、用户的操作状态反馈:
    149.对于移动端消息,本平台需要收集两类用户操作的反馈信息:已读、已完成任务。“已读”表示用户已经阅读过此消息,“已完成任务”表示用户已执行该条消息所指派的任务。
    150.(1)用户已读反馈:
    151.当用户点击消息列表中的某个条目时,会弹出消息详情窗口来展示消息的详细内容。若先前该条消息的状态为未读,则此时会调用后台服务提供的rest接口,将用户的消息状态标记为已读,并记录阅读时间。
    152.(2)用户已完成任务反馈:
    153.若消息类型为任务类型消息(此类型消息需要用户任务状态的反馈信息),且消息状态为未完成,则消息详情窗口中会显示一个“完成任务”的按钮。当用户点击该按钮时,会调用后台服务提供的rest接口,将用户的消息状态标记为已完成任务,并记录任务的完成时间。
    154.若消息来源于外部业务系统,后台服务还会将用户操作反馈给外部系统,强化信息集成发布的平台属性和能力:当用户已读或已完成任务时,除了对用户操作信息进行记录外,后台服务还会回调外部业务系统所预留的回调地址,通过url栏参数的方式,将用户的操作信息反馈回去。
    155.实施例
    156.为了验证本发明方案的有效性,进行如下实验设计。
    157.本实施例搭建的基于websocket的信息集成发布系统,包括信息集成管理端、信息展示客户端、信息发布移动端和信息集成发布后台服务四个部分。本系统提供了统一接口,可为其它系统实现信息推送和反馈功能。管理员可在管理端平台上,根据不同环境不同对象来发布不同的信息,客户端可以将发布的信息展示给受众,以达到发布信息的功能;同时,还能够向个人用户推送消息通知,并具备用户操作反馈功能。
    158.所述的信息展示客户端与后台服务之间建立websocket连接,处理流程如图1所示,具体实施步骤如下:
    159.当信息展示客户端向服务端在001块发起连接后,服务端会在002块获取客户端设备相对于后台服务的网络ip。如果该ip没有注册,则直接断开连接或不对连接做出响应。如果ip已经注册,则在003块服务端会将设备ip与连接session间的相互对应关系进行缓存,并通知客户端连接建立成功。
    160.004块,后台服务端会对所有连接成功的web客户端进行不间断的心跳检测,心跳检测成功的客户端,如果在005块被管理员推送新的消息或者修改已有的消息,则进入006块。006块中,服务端会根据新的消息内容与缓存中已经存储的版本id,播放任务数据、相关联的版面数据、关联表数据等等进行比对,如果和缓中内容相同,则不做任何修改。如果是新消息,或者消息内容被修改,则将对应的消息内容在007进行存入或修改,并发送到客户端,更新消息内容。
    161.在管理员断开客户端与服务端连接护着心跳检测失败后,则进入007块关闭连接。
    162.所述的信息发布移动端与后台服务之间建立websocket连接,处理流程如图2所示,具体实施步骤如下:
    163.当移动端微信小程序在201块发起连接请求后,会在202块获取移动端微信账号在小程序中的唯一标识openid,并加以判断。如果不存在,则转到203块进行注册和绑定。注册绑定成功或openid已存在则,建立缓存,连接成功。之后的消息发送和连接断开流程和web客户端中一致。
    164.所述的版面创建到版面播放功能,处理流程如图3所示,具体实施步骤如下:
    165.后台服务端301块向客户端发送版面数据。负责建立、管理和监听websocket连接与服务端301块通讯的播放任务管理层302块,在接收到版面播放通知时,根据版本标识号做出判断,如果已经被建立则无响应。如果该版面未被建立,则调用版面管理层303块负责管理版面对象的创建、销毁和切换。版面管理层303块会为新版面创建播放定时任务,并在任务结束时对版面进行销毁。
    166.具体的版面内容由控件管理层304块实现,该层会记录版面的基础配置项数据,例如:版面id、名称、描述、控件内容、屏幕分辨率、背景色/背景图、是否为模板页面等等,同时向其中的各个控件传递配置数据。并在控件实现层305块中将传递过来的件类型、位置坐标x和y、控件长宽、特殊配置项等等进行记录和配置,以此得到一个新版面。
    167.所述的信息集成管理端中的客户端管理模块,客户端管理页面如图4所示,新增客户端页面如图5所示,具体实施步骤如下:
    168.图4是客户端管理界面。通过点击新增按钮可以增加连接的远程客户端,此时跳转到新增客户端页面(图5)。其中,客户端名称,客户端所在的公网ip地址,客户端的分辨率为必填选项,其他字段为选填。分辨率填写时,选择下拉框,系统提供了以下几种分辨率以供选择。分辨率可选数据为2560
    ×
    1600、1920
    ×
    1200、1920
    ×
    1080、1680
    ×
    1050、1440
    ×
    900、1366
    ×
    768、1280
    ×
    800、1280
    ×
    720、1024
    ×
    576。其中我们推荐使用2560
    ×
    1600分辨率。此外,通过选中已连接的客户端,并点击批量删除按钮,可以实现对已连接的客户端的批量删除操作。
    169.所述的信息集成管理端中的版面管理模块,版面管理页面如图6所示,版面设计页面如图7所示,具体实施步骤如下:
    170.图6是版面管理页面,在此页面中,我们可以对远程客户端上的页面内容进行新建、修改或者删除。通过点击修改按钮,将跳转到图7。在此页面中,我们可以对版面进行修改。通过选择媒体库中的文件我们便可实现媒体资源在客户端上的展示。
    171.所述的信息集成管理端中的消息推送管理模块,消息推送管理页面如图8所示,新增消息推送页面如图9所示,具体实施步骤如下:
    172.图8是消息推送管理页面,通过此功能可以向远程屏幕定时推送文本消息。点击新增推送按钮,弹出新增消息推送页面(图9)。在新增消息推送页面中,可以对信息推送的相关参数进行设置。消息类型分为:通知类、提醒类、操作类。消息推送一共有两种选择,一是选择立即推送。二是选择定时发送,并选定需要发送的时间,时间精度可以精确到秒级。
    173.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
    174.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
    转载请注明原文地址:https://tc.8miu.com/read-2166.html

    最新回复(0)