修复集群模式下国标级联跨平台请求无法发送目录订阅的BUG
This commit is contained in:
@@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.service.redisMsg;
|
||||
import com.genersoft.iot.vmp.common.CommonCallback;
|
||||
import com.genersoft.iot.vmp.common.StreamInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.*;
|
||||
import com.genersoft.iot.vmp.gb28181.controller.bean.ChannelListForRpcParam;
|
||||
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
|
||||
|
||||
@@ -25,6 +26,7 @@ public interface IRedisRpcService {
|
||||
void removeCallback(long key);
|
||||
|
||||
long onStreamOnlineEvent(String app, String stream, CommonCallback<StreamInfo> callback);
|
||||
|
||||
void unPushStreamOnlineEvent(String app, String stream);
|
||||
|
||||
void subscribeCatalog(int id, int cycle);
|
||||
@@ -33,6 +35,18 @@ public interface IRedisRpcService {
|
||||
|
||||
boolean updatePlatform(String serverId, Platform platform);
|
||||
|
||||
boolean deletePlatform(String serverId, Integer platformId);
|
||||
|
||||
int addPlatformChannelList(String serverGBId, ChannelListForRpcParam channelListForRpcParam);
|
||||
|
||||
int removeAllPlatformChannel(String serverId, Integer platformId);
|
||||
|
||||
int removePlatformChannelList(String serverId, ChannelListForRpcParam channelListForRpcParam);
|
||||
|
||||
boolean updateCustomPlatformChannel(String serverId, PlatformChannel channel);
|
||||
|
||||
boolean pushPlatformChannel(String serverId, Integer platformId);
|
||||
|
||||
void catalogEventPublish(String serverId, CatalogEvent catalogEvent);
|
||||
|
||||
WVPResult<SyncStatus> devicesSync(String serverId, String deviceId);
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.genersoft.iot.vmp.conf.redis.bean.RedisRpcRequest;
|
||||
import com.genersoft.iot.vmp.conf.redis.bean.RedisRpcResponse;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.Platform;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.PlatformChannel;
|
||||
import com.genersoft.iot.vmp.gb28181.controller.bean.ChannelListForRpcParam;
|
||||
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IPlatformChannelService;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
|
||||
@@ -55,7 +57,7 @@ public class RedisRpcPlatformController extends RpcController {
|
||||
* 更新
|
||||
*/
|
||||
@RedisRpcMapping("update")
|
||||
public RedisRpcResponse play(RedisRpcRequest request) {
|
||||
public RedisRpcResponse update(RedisRpcRequest request) {
|
||||
Platform platform = JSONObject.parseObject(request.getParam().toString(), Platform.class);
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
boolean update = platformService.update(platform);
|
||||
@@ -64,6 +66,114 @@ public class RedisRpcPlatformController extends RpcController {
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@RedisRpcMapping("delete")
|
||||
public RedisRpcResponse delete(RedisRpcRequest request) {
|
||||
Integer platformId = Integer.parseInt(request.getParam().toString());
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
try {
|
||||
boolean result = platformService.delete(platformId);
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody(Boolean.toString(result));
|
||||
}catch (Exception e) {
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("false");
|
||||
}
|
||||
return response;
|
||||
}
|
||||
/**
|
||||
* 主动推送通道
|
||||
*/
|
||||
@RedisRpcMapping("pushChannel")
|
||||
public RedisRpcResponse pushChannel(RedisRpcRequest request) {
|
||||
Integer platformId = Integer.parseInt(request.getParam().toString());
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
try {
|
||||
platformChannelService.pushChannel(platformId);
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("true");
|
||||
}catch (Exception e) {
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("false");
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 共享通道
|
||||
*/
|
||||
@RedisRpcMapping("addChannelList")
|
||||
public RedisRpcResponse addChannelList(RedisRpcRequest request) {
|
||||
ChannelListForRpcParam param = JSONObject.parseObject(request.getParam().toString(), ChannelListForRpcParam.class);
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
try {
|
||||
int result = platformChannelService.addChannels(param.getPlatformId(), param.getChannelIds());
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody(result + "");
|
||||
}catch (Exception e) {
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("0");
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除全部共享通道
|
||||
*/
|
||||
@RedisRpcMapping("removeAllChannel")
|
||||
public RedisRpcResponse removeAllChannel(RedisRpcRequest request) {
|
||||
Integer platformId = Integer.parseInt(request.getParam().toString());
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
try {
|
||||
int result = platformChannelService.removeAllChannel(platformId);
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody(result + "");
|
||||
}catch (Exception e) {
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("0");
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消共享通道
|
||||
*/
|
||||
@RedisRpcMapping("removeChannelList")
|
||||
public RedisRpcResponse removeChannelList(RedisRpcRequest request) {
|
||||
ChannelListForRpcParam param = JSONObject.parseObject(request.getParam().toString(), ChannelListForRpcParam.class);
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
try {
|
||||
int result = platformChannelService.removeChannels(param.getPlatformId(), param.getChannelIds());
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody(result + "");
|
||||
}catch (Exception e) {
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("0");
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义通道
|
||||
*/
|
||||
@RedisRpcMapping("updateCustomChannel")
|
||||
public RedisRpcResponse updateCustomChannel(RedisRpcRequest request) {
|
||||
PlatformChannel param = JSONObject.parseObject(request.getParam().toString(), PlatformChannel.class);
|
||||
RedisRpcResponse response = request.getResponse();
|
||||
try {
|
||||
platformChannelService.updateCustomChannel(param);
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("true");
|
||||
}catch (Exception e) {
|
||||
response.setStatusCode(ErrorCode.SUCCESS.getCode());
|
||||
response.setBody("false");
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 目录更新推送
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.genersoft.iot.vmp.conf.redis.RedisRpcConfig;
|
||||
import com.genersoft.iot.vmp.conf.redis.bean.RedisRpcRequest;
|
||||
import com.genersoft.iot.vmp.conf.redis.bean.RedisRpcResponse;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.*;
|
||||
import com.genersoft.iot.vmp.gb28181.controller.bean.ChannelListForRpcParam;
|
||||
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
|
||||
import com.genersoft.iot.vmp.gb28181.session.SSRCFactory;
|
||||
import com.genersoft.iot.vmp.media.event.hook.Hook;
|
||||
@@ -238,6 +239,72 @@ public class RedisRpcServiceImpl implements IRedisRpcService {
|
||||
return Boolean.parseBoolean(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deletePlatform(String serverId, Integer platformId) {
|
||||
RedisRpcRequest request = buildRequest("platform/delete", platformId);
|
||||
request.setToId(serverId);
|
||||
RedisRpcResponse response = redisRpcConfig.request(request, 20, TimeUnit.SECONDS);
|
||||
if(response == null) {
|
||||
return false;
|
||||
}
|
||||
return Boolean.parseBoolean(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int addPlatformChannelList(String serverId, ChannelListForRpcParam channelListForRpcParam) {
|
||||
RedisRpcRequest request = buildRequest("platform/addChannelList", channelListForRpcParam);
|
||||
request.setToId(serverId);
|
||||
RedisRpcResponse response = redisRpcConfig.request(request, 20, TimeUnit.SECONDS);
|
||||
if(response == null) {
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int removeAllPlatformChannel(String serverId, Integer platformId) {
|
||||
RedisRpcRequest request = buildRequest("platform/removeAllChannel", platformId);
|
||||
request.setToId(serverId);
|
||||
RedisRpcResponse response = redisRpcConfig.request(request, 20, TimeUnit.SECONDS);
|
||||
if(response == null) {
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int removePlatformChannelList(String serverId, ChannelListForRpcParam channelListForRpcParam) {
|
||||
RedisRpcRequest request = buildRequest("platform/removeChannelList", channelListForRpcParam);
|
||||
request.setToId(serverId);
|
||||
RedisRpcResponse response = redisRpcConfig.request(request, 20, TimeUnit.SECONDS);
|
||||
if(response == null) {
|
||||
return 0;
|
||||
}
|
||||
return Integer.parseInt(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateCustomPlatformChannel(String serverId, PlatformChannel channel) {
|
||||
RedisRpcRequest request = buildRequest("platform/updateCustomChannel", channel);
|
||||
request.setToId(serverId);
|
||||
RedisRpcResponse response = redisRpcConfig.request(request, 20, TimeUnit.SECONDS);
|
||||
if(response == null) {
|
||||
return false;
|
||||
}
|
||||
return Boolean.parseBoolean(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean pushPlatformChannel(String serverId, Integer platformId) {
|
||||
RedisRpcRequest request = buildRequest("platform/pushChannel", platformId);
|
||||
request.setToId(serverId);
|
||||
RedisRpcResponse response = redisRpcConfig.request(request, 20, TimeUnit.SECONDS);
|
||||
if(response == null) {
|
||||
return false;
|
||||
}
|
||||
return Boolean.parseBoolean(response.getBody().toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void catalogEventPublish(String serverId, CatalogEvent event) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
|
||||
Reference in New Issue
Block a user