平台奖励创作,可能会升级VIP文章,可以移步我的公众号:【编程朝花夕拾】,且可获取首发内容。

01 引言
之前探索了一下直播间实时评论的的背后技术,这一节,我们将选用最经典的WebSocket的模拟这一功能的实现。
WebSocket可以基于Netty实现,也可以基于Springboot实现。本节使用Springboot自带的WebSocket实现。
02 Maven依赖的引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!-- 编写页面使用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 序列化对象工具类 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
03 直播间实时评论模拟实战
下来我们将一步步搭建WebSocket,实现模拟直播间。具体的使用可以参见官方的文档说明:
https://docs.spring.io/spring-framework/docs/5.3.31/reference/html/web.html#websocket-server
3.1 创建WebSocket处理器

官方案例给的比较简单,我们来实现属于我们自己的处理器。
- ① 建立连接,保存当前的客户端
- ② 处理文本消息
- ③ 连接关闭后,删除当前客户端
- ④ 模拟敏感词处理-

建立连接
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
log.info("链接建立成功......");
String sessionId = session.getId();
WebSocketSession webSocketSession = SESSION_MAP.get(sessionId);
if (webSocketSession == null) {
SESSION_MAP.put(sessionId, session);
}
// 发送消息
noticeClient(session, sessionId.substring(0, 5) + "*** 进入了直播间");
}
接收消息
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message)

最低0.47元/天 解锁文章
1263

被折叠的 条评论
为什么被折叠?



