admin 管理员组

文章数量: 1184232


2024年3月19日发(作者:长沙华瑞it学校正规吗)

2020.18科学技术创新

-

95

-

基于SpringBoot和WebSocket的点对点聊天

系统研发与部署

黎志伟

云南

昆明650000)(云南师范大学信息学院

摘要:介绍了一款精简版web点对点聊天系统的研发过程。整个点对点聊天系统主要利用了websocket提供的open和

利用

docker便捷实现了系统的部署。阐述了该系统的总体设计与各个主要功能的实现message接口快捷的完成整个聊天系统后

过程,为正在学习SpringBoot+websocket实现点对点聊天系统的人提供了一种参考

。该系统的重点在

于对websocket这个协议的

使用以及聊天系统消息存储解决方案

docker的容器化部署系统

关键词:通讯;websocket;容器化部署

中图分类号:TP311.52文献标识码:A文章编号:2096-4390(2020)18-0095-02

1概述

4.1通讯功能

。若

A用户要与B用户进行通讯

A用户首先需

各式各样的网站、小程序、

要点击好友列表中的B用户进入到聊天界面

目前,随着软件市场的不断扩大,A用户在发送消息

大量免

区域输入要发送的内容后,

通过回车事件调用本地的

send方法,

APP应运而生,为了满足软件快速实现并简捷部署的需求

费开源项目和新技术被运用来实现软件的快捷开发与部署

,这种

时将发送的内容添加到聊天信息展示区域的左侧

,之后进入到服

方式不仅缩短了平均开发周期,而且降低了该部分功能出现错误务端的Onmessage方法,通过消息接收方B的sendtext方法将消

若都通过,

的可能性。本文介绍的是在web平台下使用docker引擎和web息发送到接收方B,接收方B的客户端进行一系列判断

socket通讯协议开发并部署一款聊天系统

,即在项目中引入

web直接将收到的消息添加到聊天消息区域的右侧

本系统

socket协议进行对应的接口实现,最

后服务器安装

docker引擎来4.2临时保存聊天记录。为了不影响用户的聊天体验

完成系统部署

还要实现保存当前用户和其它用户的聊天信息

;本文提出两种方

2docker引擎与websocket协议介绍

案,第一种就是在当前用户的本地客户端用特定集合来保存聊天

Docker容器是一个开源的应用容器引擎

,让开发者可以以统

信息;第二种是将所有消息以特定的格式在服务端做持久化处理

然后

并设置过期时间;

还有一点需

一的方式打包他们的应用以及依赖包到一个可移植的容器中,本文选取第一种简单的方案来处理

发布到任何安装了docker引擎的服务器上(包括流行的Linux机要注意由于聊天信息保存在客户端,也未作持久化处理,在客户端

器、windows机器),也可以实现虚拟化。容器是完全使用沙箱机制,保存的聊天信息失效时间点是用户关闭了浏览器,因为聊天信息

相互之间不会有任何接口(类似iPhone的app)。几乎没有性能开销,是保存在本地特定的集合中,当用户关闭浏览器之后,将会丢失这

可以很容易地在机器和数据中心中运行。最

重要的是

,他们不依赖些信息

有了临时保存聊天

于任何语言、框架包括系统

WebSocket是一种在单个TCP连接上4.3加载临时保存的聊天信息和未读消息

信息方案

,若

A用户切换聊天对象后

,能恢复与

B之前的聊天信进行全双工通信的协议,浏览器和服务器只需要完成一次握手

并进行双向数据传输。若有,在

者之间就直接可以创建持久性的连接

息,同时还要检查B是否给A发消息且A未读这些消息

具体步骤如

3系统总体设计

恢复完与B之前的聊天信息后,还需要加载未读消息

聊天系统的设计主要运用了websocket的Onopen方法和下

通过A的UUID与B的UUID组合起来从已读消息集合中取

Onmessage两个方法,客户端首先生成一个不重复的UUID作为出聊天信息Messages。遍历Messages,通过每一条消息中的标识位

用户名去与服务端建立连接。服务端收到连接并维护所有客户端(notMine和空)来判断添加在聊天的界面左侧或者右侧。通过B

这是为了

的连接,连接成功后客户端加载所有与服务端建立了连接的用户

的UUID去遍历未读消息集合,消息需满足标志为未读

之后客户端之间再以服务端做中转站其它客户端实现通讯

,最后

避免重复加载。这里是直接将未读消息添加到聊天界面的右侧

作为默

时该条消息会被添加到对应的已读消息集合

将系统部署在docker容器中。本系统事先会准备一些图片

用户连接以

[key,value]的存储方式保存在服务端特定认用户头像,4.4加载所有在线用户

A用户运行系统,首先调用客户端的

集合中,本次会话的已读和未读消息也会保存在客户端特定集合Onopen方法以随机生成的UUID码作为用户名与服务端建立连

客户端制作为了节省

接;

同时将用户名和对应的

session保中。由于本次系统的重点不在于客户端界面

服务端接收到客户端的连接

时间,系统运用了一些网络上开放的前端组件

,主要包括

3个界存在一个特定的[key,value]集合中;之后当前客户端加载所有在线

面,系统初始界面、用户列表界面、聊天主体界面。系统的界面流程用户并以列表的形式展示,同时通过调用服务端的Onmessage方

但系统

法通知其它所有在线的用户

图如图所示。这里的一些组件已经定义好了基础点击事件

A上线了需要重新加载好友列表

还需对部分业务逻辑代码进行扩展,比如点击事件;同时增加了系4.5未读消息提示。先逐一遍历本地未读消息的集合,每遍历

未读

一条消息之后都会遍历一遍A用户的在线好友列表

,如果未读消息

统需要实现的某些功能,主要增加了未读消息数量提示功能

/已读消息保存功能,未读消息提示清空功能等

的发送方与A用户的好友列表中某一个用户名相等

,则在

A用户

4主要功能实现

对应的好友列表上将未读消息数量上加一。

如图所示

(转下页

1995-)

重庆开州

区人,

通讯协

作者简介:黎志伟,男,汉族

工学硕士,云南师范大学信息学院计算机技术专业,研究方向

议、docker引擎

-

96

-

科学技术创新2020.18

基于互联网框架的办公形态智能办公环境设计

DesignofintelligentofficeenvironmentbasedonInternet

framework

杨迪

1

刘冰

2

梁懿

3

王亮

3

北京

1000002、

四川

成都610000(1、国家电网有限公司,国网四川省电力公司,

3、福建亿榕信息技术有限公司,福建福州350000)

办公环境

已经成为平时工作人员常驻并不可或缺的场所和办公地点,摘要:在当前互联网时代的逐步发展中,办公人员的

在针对智能技术认

工作需求和办公水平也有所提高,其企业工作人员对于智能办公环境的诉求也在这智能科技的发展而发展,

可的同时也对智能技术带来的舒适和便利产生了极大需求。基于互联网框架下对办公形态进行分析,总结出智能办公的应用发

展。

互联网:科学技术

关键词:办公环境;智能技术

中图分类号:TP317.1文献标识码:A文章编号:2096-4390(2020)18-0096-02

1办公环境智能化的发展

1.1办公环境智能化的发展概述

在智能科技的支持下,使得办公环境得到优化和升级

在采用计算机技术,检测

工作理念和价值观的基础上来设计

与传感技术,自动控制技术,微电子技术等多个技术手段来实

现环境的变化和升级。使得大多数的办公区域实现网络化

息化,自动化等功能

在优化办公环境的同时,使得办公环境更能满足人们的需

求,提供高级舒适的办公区域。通过技术的支持和传导设计出

智能化的,科技的办公生活,使得办公区域的各方面因素系统

的结合在一起,从而实现智能化的办公环境

1.2办公环境智能化的构成

环境本体影响着整

控制器,传感器,执行装置,传动装置

个办公区域智能化的总体构成。在办

公环境中采用信息的数据

的采集和处理使得先前的制定的程序通过微电子技术的支持

得到有效执行和计算,并发布和指挥工作中的命令

。再通过接

受到的命令,通过系统操作之后,使得其作出相应的动作指令,

从而完成执行的任务。利用传感的功能将电量幻化成

(转下页)

修改会出现bug,修改起来费时费力,因此在以后的开发中应该尽

可能规划好自己的开发流程,同提升编码的健壮性。此外,本系统

没有采用设计模式,一切采用最基本的编码方式,旨在于给那些学

能够快速入门。

未读消息提示

习即时通讯的同学提供一种参考

后台

4.6未读消息清空。

A用户打开与B用户的聊天界面

参考文献

邹素雯

.微服务容器化部署的研究[J].计算技术与自动化

会加载B发送给A且A未读的消息

,加载完

B发过来的消息后

[1]付琳琳,

需要把B对应的未读消息数量设置为0。

2019,38(4):151-155.

5docker容器化部署

[2]刘顺.基于Linux的私有云及容器部署设计与实现[J].中国新通

linux服务器上安装docker,首先

修改镜像为阿里云私人信,2019,21(18):53.

直接拉取一个标准的

tomcat镜像下来;安装

[3]谭婷.基于WEB的银行在线客服系统的设计与实现[D].呼和浩

镜像地址,安装完成后

Docker-compose,它是docker的服务编排工具,主要是用来构建多特:内蒙古大学,2018.

个服务。在文件中写好对tomcat的配置,其中

[4]张艳芳.基于Web的企业即时通讯系统的设计与实现[D].石家庄:

有一个比较重要的属性就是数据卷属性

,要设置宿主机目录和容

河北科技大学,2018.

器目录,这里的容器目录指的是tomcat的webapps目录,可以简单

[5]陈孝义.基于Web的线上社群管理系统的设计与实现[D].北京:

理解为如果在宿主机目录下放了项目war包,那么容器目录下也会京邮电大学,2018.

那么直接将

war包放

[6]高礼,

高昕

.Docker技术在软件开发过程中的应用研究[J].软件

有,起一个共享数据的作用,知道了这个作用,

通过

docker-compose

2016,

在服务器指定的目录下即可

。一切准备就绪,

37(3):110-113.

启动我们的服务。如果后期项目需要多个tomcat,那是不是在

[7]张学峰.网络即时通讯MSNMessenger快上手[J].软件

2002(1):

docker-compose的配置文件中配置多个tomcat即可呢,如果又需

65-67.

要mysql,同样可以加进来。只需要一个命令即可启动配置文件中

[8]宋昱.一种高性能即时通讯服务系统的设计[J].软件,2016,37

所有定义好的服务,非常简捷。当然它的好处还有很多,这里就不(12):180-183.

一一列举了。

[9]车永光.Web的即时通讯系统设计研究[J].信息通信

2018(6):

6结论

178-180.

比如在某些地方采取

[10]卢仕伟.基于Web的在线交流平台的开发技术研究与应用[D].秦

在整个实现过程中,编码不是特别规范

山大学,拼接字符串来实现一些需求,这样的后果就是若后期出现大规模皇岛

2015.


本文标签: 系统 办公 消息