Browse Source

fix 媒体设备集群下线监听

18339543638 3 years ago
parent
commit
8c9fde07f8

+ 4 - 1
jetlinks-manager/media-manager/src/main/java/org/jetlinks/community/media/service/LocalMediaDeviceService.java

@@ -74,7 +74,8 @@ public class LocalMediaDeviceService extends GenericReactiveCrudService<MediaDev
 
     @Subscribe("/media/device/*/*/register")
     public void register(MediaDevice mediaDevice){
-        //注册设备
+        //注册设备 将在线设备信息添加到redis中
+        redisUtil.sSet("session_"+this.serverId,mediaDevice.getId());
         this.updateById(mediaDevice.getId(),mediaDevice)
             .filter(count->count==0)
             .flatMap(ignore->save(mediaDevice))
@@ -127,6 +128,7 @@ public class LocalMediaDeviceService extends GenericReactiveCrudService<MediaDev
      */
     public void deviceOffline(MediaDevice mediaDevice){
         //取消注册媒体设备
+        redisUtil.setRemove("session_"+this.serverId,mediaDevice.getId());
         redisCacheStorage.removeDevice(mediaDevice.getId());
         this.createUpdate()
             .where(MediaDevice::getId,mediaDevice.getId())
@@ -150,6 +152,7 @@ public class LocalMediaDeviceService extends GenericReactiveCrudService<MediaDev
     @Subscribe("/media/device/*/*/unregister")
     public void unRegister(MediaDevice mediaDevice){
         //取消注册媒体设备
+        redisUtil.setRemove("session_"+this.serverId,mediaDevice.getId());
         DeviceSession session = sessionManager.unregister(mediaDevice.getId());
         if(session!=null){
             session.close();