【SSE】Spring Boot集成sse实现消息实时推送
概念
SSE(Server-Sent
Events)是一种允许服务器向客户端推送实时数据的技术,它建立在
HTTP 和简单文本格式之上,提供了一种轻量级的服务器推送方式,通常也被称为“事件流”(Event
Stream)。他通过在客户端和服务端之间建立一个长连接,并通过这条连接实现服务端和客户端的消息实时推送。
特性
简单性:SSE 使用简单的 HTTP 协议,通常建立在标准的
HTTP 或 HTTPS
连接之上。这使得它对于一些简单的实时通知场景非常适用,特别是对于服务器向客户端单向推送数据。
兼容性:SSE
在浏览器端具有较好的兼容性,因为它是基于标准的 HTTP
协议的。即使在一些不支持 WebSocket 的环境中,SSE 仍然可以被支持。
适用范围:SSE
适用于服务器向客户端单向推送通知,例如实时更新、事件通知等。但它仅支持从服务器到客户端的单向通信,客户端无法直接向服务器发送消息。
WebSocket
全双工通信: WebSocket
提供了全双工通信,允许客户端和服务器之间进行双向实时通信。这使得它适用于一些需要双向数据交换的应用,比如在 ...
【uniPush】SpringBoot集成uniPush推送服务
介绍
UniPush
是个推(Getui)推出的一项推送服务。它是一个多平台推送解决方案,旨在帮助开发者统一管理和发送推送通知,无论用户使用的是
Android、iOS 还是其他平台的设备。
主要特点和功能
多平台支持:UniPush 支持 Android、iOS
等主流平台,开发者只需要集成一次 SDK,就能实现跨平台的消息推送。
高送达率:个推的推送服务以高送达率著称,通过精准的推送通道和智能的推送策略,确保消息能够及时送达用户设备。
精准推送:支持根据用户标签、地理位置、行为等信息进行精准推送,提高消息的有效性和转化率。
实时统计:提供详尽的推送统计报告,开发者可以实时查看推送的送达率、点击率等数据,优化推送策略。
丰富的消息类型:支持文本消息、富媒体消息(图片、音频、视频)等多种形式的消息推送,满足不同应用场景的需求。
开发者友好:提供简单易用的 API 和
SDK,快速集成到应用中。同时,个推提供详细的文档和技术支持,帮助开发者解决集成过程中的问题。
多种推送策略:包括定时推送、地理围栏推送、用户分群推送等,开发者可以根据业务需求灵活选择合适的推送策 ...
【MapStruct】基于MapStruct实现类之间转换
介绍
MapStruct
是一个注解处理器,它可以在编译时自动生成实现对象之间映射的代码。它通过使用注解来定义映射关系,减少了手动编写转换代码的繁琐工作
使用场景
用于将不同类型的对象相互转换(例如从实体对象到数据传输对象DTO,或者从实体对象到视图对象VO)
使用
在 Spring Boot 项目中使用的步骤如下
引入 MapStruct
maven
使用 Maven 构建工具,可以在 pom.xml 中添加以下依赖
1234567891011<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.5.3.Final</version></dependency><dependency> <groupId>org.mapstruct</groupId> <artifactId ...
【Docker】宿主机与内部时差配置
场景
当我们系统的时间与docker容器的时间存在时间差,是因为docker本身的时区没被指定
命令
12# 查看linux 时间date
123# 查看docker时间 ce5dd15b81a7 为容器iddocker exec -it ce5dd15b81a7 date
如下:
解决方式
Dockerfile 设置时间
通过dockerfile 构建镜像时,为其所有的容器设置时区
Dockerfile 文件
123456789101112131415161718#镜像的地址FROM docker.fxxk.dedyn.io/openjdk:8-jdk-alpine# 设置时区为东八区(北京时间)RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone# 设置容器内部的工作目录WORKDIR app# 复制jar文件到容器app目录COPY sys.jar sys.ja ...
【Linux】工作常用的命令
历史
查看所有历史命令
1history
搜索包含 jar 的历史命令
执行以下命令仅显示包含 jar 的历史命令:
1history | grep jar
查找历史删除命令
1history | grep rm
会话
screen 是一个 Linux/Unix
下的终端多路复用器,它允许用户在一个单一终端窗口内启动和控制多个终端会话。在
screen 会话中启动的进程,即使用户断开 SSH
连接,进程也能继续运行。
创建会话
12# 会话名称screen -S ts_api
在 screen 会话中运行命令
1java -jar ts.jar
创建
或者
123456# ts_api 为会话名称# java -jar /root/soft/test/ts.jar 为会话中执行的命令# -d 启动一个新的 screen 会话并立即将其置于后台(即分离状态),这样你就不会立即进入这个会话# -m 强制创建一个新的会话。# -S 为新创建的会话指定一个名字screen -dmS ts_api java -jar /root/soft/test/ts.j ...