浏览代码

优化3-每3秒像正在直播的直播间发送

hgw 3 年之前
父节点
当前提交
f0d1b0fb52
共有 1 个文件被更改,包括 19 次插入0 次删除
  1. 19 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -663,6 +663,25 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 userInfo.setDynamicLookTime(null);
             }
             roomTotalUser.fastPut(userId, userInfo);
+            //如果是最后一个人离开房间则发送一条消息给主播
+            if (onlineUserInfo.isExists() && onlineUserInfo.size() == 1) {
+                //发送消息到直播间
+                ImRoomMessage message = new ImRoomMessage();
+                message.setFromUserId(userId.toString());
+                message.setToChatroomId(roomUid);
+                message.setObjectName(ImRoomMessage.MEMBER_COUNT);
+                message.setContent(new HashMap<String, Integer>() {{
+                    put("count", 0);
+                }});
+                //发送消息
+                try {
+                    imFeignService.publishRoomMsg(message);
+                    log.info("sendLiveOnlineNum>>>> speakerId  room:{}", JSONObject.toJSONString(message));
+                } catch (Exception e) {
+                    log.error("sendLiveOnlineNum>>>>  speakerId error {}", e.getMessage());
+                    log.error("sendLiveOnlineNum>>>>  speakerId sendMessage {} :", JSONObject.toJSONString(message));
+                }
+            }
             //从在线人员列表删除该人员
             onlineUserInfo.fastRemove(userId);
             log.info("opsRoom>>>> looker userInfo: {}", JSONObject.toJSONString(userInfo));