Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
c1a33cf4
提交
c1a33cf4
authored
11月 13, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(websocket): 处理消息格式异常和发送异常
上级
73825b3b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
23 行增加
和
7 行删除
+23
-7
TemporaryActivityTaskClockSocketHandler.java
...on/websocket/TemporaryActivityTaskClockSocketHandler.java
+23
-7
没有找到文件。
src/main/java/com/wangxiaolu/promotion/websocket/TemporaryActivityTaskClockSocketHandler.java
浏览文件 @
c1a33cf4
package
com
.
wangxiaolu
.
promotion
.
websocket
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.wangxiaolu.promotion.websocket.pojo.MessageBean
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -55,7 +56,7 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle
* 收到前端消息时调用
*/
@Override
protected
void
handleTextMessage
(
WebSocketSession
session
,
TextMessage
message
)
throws
Exception
{
protected
void
handleTextMessage
(
WebSocketSession
session
,
TextMessage
message
)
{
String
userId
=
(
String
)
session
.
getAttributes
().
get
(
"userId"
);
String
payload
=
message
.
getPayload
();
log
.
info
(
"收到用户["
+
userId
+
"]的消息:"
+
payload
);
...
...
@@ -65,9 +66,20 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle
log
.
info
(
"用户["
+
userId
+
"]心跳正常"
);
return
;
}
// 业务处理
MessageBean
messageBean
=
objectMapper
.
readValue
(
payload
,
MessageBean
.
class
);
handleMessageType
(
messageBean
);
// 判断payload 是否是json
if
(
payload
.
startsWith
(
"{"
))
{
MessageBean
messageBean
=
null
;
try
{
messageBean
=
objectMapper
.
readValue
(
payload
,
MessageBean
.
class
);
}
catch
(
JsonProcessingException
e
)
{
log
.
error
(
"用户["
+
userId
+
"]消息格式错误:"
+
payload
);
sendToUser
(
userId
,
"用户["
+
userId
+
"]消息格式错误:"
);
}
handleMessageType
(
messageBean
);
}
// 业务消息处理(示例:广播消息)
// broadcast("用户[" + userId + "]:" + payload);
}
...
...
@@ -130,11 +142,15 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle
/**
* 向指定用户发送消息
*/
public
Integer
sendToUser
(
String
userId
,
String
message
)
throws
IOException
{
public
Integer
sendToUser
(
String
userId
,
String
message
)
{
WebSocketSession
session
=
sessions
.
get
(
userId
);
if
(
session
!=
null
&&
session
.
isOpen
())
{
// String jsonMessage = objectMapper.writeValueAsString(message);
session
.
sendMessage
(
new
TextMessage
(
message
));
try
{
session
.
sendMessage
(
new
TextMessage
(
message
));
}
catch
(
IOException
e
)
{
log
.
error
(
"用户["
+
userId
+
"]发送消息失败:"
+
message
);
return
0
;
}
return
1
;
}
return
0
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论