Migrate frontend realtime messaging to SSE.
Switch service integrations and screen/store consumers from websocket events to SSE, and ignore generated dist-web artifacts. Made-with: Cursor
This commit is contained in:
@@ -27,9 +27,6 @@ import { uploadService } from '../../../../services/uploadService';
|
||||
import { ApiError } from '../../../../services/api';
|
||||
// 【新架构】使用 MessageManager
|
||||
import { useChat, useGroupTyping, useGroupMuted, messageManager } from '../../../../stores';
|
||||
import {
|
||||
websocketService,
|
||||
} from '../../../../services/websocketService';
|
||||
import { groupService } from '../../../../services/groupService';
|
||||
import { userManager } from '../../../../stores/userManager';
|
||||
import { groupManager } from '../../../../stores/groupManager';
|
||||
@@ -728,14 +725,7 @@ export const useChatScreen = () => {
|
||||
const segments = buildTextSegments(trimmedText, replyingTo);
|
||||
|
||||
if (isGroupChat && routeGroupId) {
|
||||
// 群聊消息发送
|
||||
websocketService.sendGroupChatMessage({
|
||||
conversationId: conversationId,
|
||||
groupId: routeGroupId,
|
||||
segments: segments,
|
||||
mentionUsers: selectedMentions.length > 0 ? selectedMentions : undefined,
|
||||
mentionAll: mentionAll || undefined,
|
||||
});
|
||||
await messageService.sendMessageByAction('group', conversationId, segments);
|
||||
|
||||
setInputText('');
|
||||
setSelectedMentions([]);
|
||||
@@ -790,12 +780,7 @@ export const useChatScreen = () => {
|
||||
const segments = buildImageSegments(uploadResult.url, uploadResult.url, undefined, undefined, replyingTo);
|
||||
|
||||
if (isGroupChat && routeGroupId) {
|
||||
websocketService.sendGroupChatMessage({
|
||||
conversationId: conversationId,
|
||||
groupId: routeGroupId,
|
||||
mediaUrl: uploadResult.url,
|
||||
segments: segments,
|
||||
});
|
||||
await messageService.sendMessageByAction('group', conversationId, segments);
|
||||
setReplyingTo(null);
|
||||
} else {
|
||||
// 【新架构】私聊图片通过 MessageManager 发送
|
||||
@@ -922,12 +907,7 @@ export const useChatScreen = () => {
|
||||
const segments = buildImageSegments(stickerUrl, stickerUrl, undefined, undefined, replyingTo);
|
||||
|
||||
if (isGroupChat && routeGroupId) {
|
||||
websocketService.sendGroupChatMessage({
|
||||
conversationId: conversationId,
|
||||
groupId: routeGroupId,
|
||||
mediaUrl: stickerUrl,
|
||||
segments: segments,
|
||||
});
|
||||
await messageService.sendMessageByAction('group', conversationId, segments);
|
||||
setReplyingTo(null);
|
||||
} else {
|
||||
// 【新架构】私聊表情通过 MessageManager 发送
|
||||
@@ -983,7 +963,7 @@ export const useChatScreen = () => {
|
||||
const handleRecall = useCallback(async (messageId: string) => {
|
||||
try {
|
||||
if (isGroupChat && routeGroupId) {
|
||||
websocketService.sendGroupRecall(routeGroupId, conversationId!, messageId);
|
||||
await messageService.recallMessage(messageId);
|
||||
} else {
|
||||
await messageService.recallMessage(messageId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user