fix: 在发送消息时设置等待标志防止重复进入聊天页
在 WeworkController 的 sendMessage 和 replyMessage 方法开始时设置 waitingForReply = true,避免主循环在消息发送过程中重复检测并进入同一聊天窗口。同时移除 WeworkLoopImpl 中已不需要的 waitForServerReply() 调用及相关注释。
This commit is contained in:
@@ -63,6 +63,8 @@ object WeworkController {
|
||||
@RequestMapping
|
||||
fun sendMessage(message: WeworkMessageBean): Boolean {
|
||||
LogUtils.d("REQUEST sendMessage(): ${message.messageId} ${message.titleList} ${message.receivedContent} ${message.at} ${message.atList?.joinToString()}")
|
||||
// 进入发送消息流程,暂停主循环检测新消息,避免重复进入同一聊天页
|
||||
waitingForReply = true
|
||||
val result = WeworkOperationImpl.sendMessage(message, message.titleList, message.receivedContent, message.at, message.atList)
|
||||
// 发送完成,通知等待结束
|
||||
waitingForReply = false
|
||||
@@ -82,6 +84,8 @@ object WeworkController {
|
||||
@RequestMapping
|
||||
fun replyMessage(message: WeworkMessageBean): Boolean {
|
||||
LogUtils.d("REQUEST replyMessage(): ${message.messageId} ${message.receivedName} ${message.originalContent} ${message.textType} ${message.receivedContent}")
|
||||
// 进入发送消息流程,暂停主循环检测新消息,避免重复进入同一聊天页
|
||||
waitingForReply = true
|
||||
val result = WeworkOperationImpl.replyMessage(
|
||||
message,
|
||||
message.titleList,
|
||||
|
||||
@@ -66,7 +66,7 @@ object WeworkLoopImpl {
|
||||
}
|
||||
// 获取消息后,等待服务端回复指令,最多30秒
|
||||
if (mainLoopRunning) {
|
||||
waitForServerReply()
|
||||
// waitForServerReply()
|
||||
}
|
||||
// 等待完成后返回主页
|
||||
if (mainLoopRunning) {
|
||||
@@ -327,7 +327,6 @@ object WeworkLoopImpl {
|
||||
null
|
||||
)
|
||||
WeworkController.weworkService.webSocketManager.send(messageBean)
|
||||
// 方案A:发送消息后立即返回主页,继续检测下一条消息,不等待
|
||||
if (needInfer) {
|
||||
val lastMessage = messageList.lastOrNull()
|
||||
if (lastMessage != null && lastMessage.sender == 0) {
|
||||
@@ -344,13 +343,10 @@ object WeworkLoopImpl {
|
||||
|| tempContent.isNotBlank()
|
||||
) {
|
||||
LogUtils.v("推测需要回复: $tempContent")
|
||||
// 方案A:不清空 waitingForReply,直接返回主页
|
||||
// 这样主循环会继续检测下一条消息
|
||||
return true
|
||||
}
|
||||
}
|
||||
2 -> {
|
||||
// 方案A:不清空 waitingForReply,直接返回主页
|
||||
return true
|
||||
}
|
||||
else -> return true
|
||||
|
||||
Reference in New Issue
Block a user