websocket面试

websocket是结合spring boot使用的,我是创建一个聊天室的,要使用websocket来进行文字的通信。
首先是服务端,导进相关的websocket依赖,然后创建websocket配置类,使用了 websocket 的子协议 stomp,我是看网上学的,方便一些。然后消息代理既使用了 /queue ,又使用了 /topic ,主要是因为我这里既有点对点的单聊,也有发送系统消息的群聊。创建 websocket 处理类 controller,就在里面写消息协议很简单:发送来的消息,后面跟的是该条消息要发送到哪个用户,响应消息包含两个字段,一个是消息内容,一个是该条消息由谁发送。这样服务端就写好了。
然后前端的话,就是用户登录成功后,就发起 websocket 的连接,连接成功之后,就可以准备接收服务端的消息了,接收到服务端的消息后,数据保存在 localStorage 中,保存格式是 当前用户名#消息发送方用户名:[{from:’消息发送方’,msg:’消息内容’}] ,注意后面的是一个 json 数组,这两个人的聊天记录都将保存在这个数组中。在聊天展示页面,当数组中的数据发生变化时,自动更新。

邮件服务搭建

这个项目里面就是,用rabbitmq和邮件服务搭建了一个邮件服务器。然后rabbitmq是一个消息队列中间件,结合也是和springboot结合使用的,导入依赖后,进行邮件mail和rabbitmq的基础配置信息。配置好RabbitConfig,建立好队列,交换机,把队列和交换机进行绑定,把交换器中的消息传输到绑定的队列实现消息消费。
还有一个消费,即把传入的数据信息从交换器传入到Queue中实现消息的消费,在这个项目中通过发送邮件实现。对相应队列进行监听,然后
编写了配置文件,配置qq邮箱的信息,配置消息中间件RabbitMq信息、还有redis等信息