房间公平消息收不到。

This commit is contained in:
2026-01-16 16:05:10 +08:00
parent fcc690db64
commit 0a968babef
3 changed files with 11 additions and 9 deletions

View File

@@ -337,7 +337,7 @@ public class MessageExListenerSingleton {
@Override
public void onRecvGroupCustomMessage(String msgID, String groupID, V2TIMGroupMemberInfo sender, byte[] customData) {
LogUtils.d("收到群自定义消息:群组 " + groupID + "" + sender.getNickName());
LogUtils.d("收到群自定义消息:群组 " + groupID + "" + sender.getNickName() +",mRoomId:"+mRoomId);
if (!groupID.equals("")) {
if (groupID.replace("room","").equals(mRoomId)) {
String message = new String(customData, StandardCharsets.UTF_8);

View File

@@ -41,6 +41,8 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import lombok.Getter;
/**
* @author qx
* @data 2025/6/17
@@ -52,7 +54,8 @@ public class MessageListenerSingleton {
private List<OnMessageReceivedListener> listeners = new ArrayList<>();
private V2TIMSimpleMsgListener simpleMsgListener;
private V2TIMAdvancedMsgListener v2TIMAdvancedMsgListener;
private static String mRoomId = "";
@Getter
public String mRoomId = "";
public static String groupId;
private V2TIMGroupListener groupListener;
private V2TIMConversationListener conversationListener; // 需要保存引用
@@ -96,7 +99,6 @@ public class MessageListenerSingleton {
// 同时修改 removePublicScreenMessageListener 方法
public void removePublicScreenMessageListener(PublicScreenMessageListener listener) {
mRoomId = "";
if (listener == null) {
return;
}
@@ -205,16 +207,16 @@ public class MessageListenerSingleton {
// 修改 joinGroup 方法,确保先退出再加入
public void joinGroup(String roomId) {
if (TextUtils.isEmpty(roomId)) {
return;
}
if (Objects.equals(mRoomId, roomId))
return;
synchronized (groupOperationLock) {
if (isGroupOperationInProgress) {
// 如果有操作正在进行,延迟执行
mainHandler.removeCallbacksAndMessages(null);
mainHandler.postDelayed(() -> joinGroup(roomId), 100);
mainHandler.postDelayed(() -> joinGroup(roomId), 200);
return;
}
@@ -340,7 +342,7 @@ public class MessageListenerSingleton {
@Override
public void onRecvGroupCustomMessage(String msgID, String groupID, V2TIMGroupMemberInfo sender, byte[] customData) {
LogUtils.d("收到群自定义消息:群组 " + groupID + "" + sender.getNickName());
LogUtils.d("收到群自定义消息:群组 " + groupID + "" + sender.getNickName() +",mRoomId:"+mRoomId);
if (!groupID.equals("")) {
if (groupID.replace("room","").equals(mRoomId)) {
String message = new String(customData, StandardCharsets.UTF_8);

View File

@@ -177,7 +177,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
public void setupExMessageListener() {
if (messageExListener != null) {
MessageExListenerSingleton.getInstance().removePublicScreenMessageListener(messageExListener);
messageListener = null;
messageExListener = null;
}
mIsPriRoom = true;
// 创建并添加监听器
@@ -198,7 +198,7 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
public void clearExMessageListener() {
if (messageExListener != null) {
MessageExListenerSingleton.getInstance().removePublicScreenMessageListener(messageExListener);
messageListener = null;
messageExListener = null;
}
}