diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/AbstractOfflineMapService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/AbstractOfflineMapService.java index 19e3f97..9426236 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/AbstractOfflineMapService.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/map/api/AbstractOfflineMapService.java @@ -10,12 +10,12 @@ import org.dromara.common.sdk.config.version.CloudSDKVersionEnum; import org.dromara.common.sdk.config.version.GatewayManager; import org.dromara.common.sdk.config.version.GatewayTypeEnum; import org.dromara.common.sdk.mqtt.ChannelName; +import org.dromara.common.sdk.mqtt.MqttGatewayPublish; import org.dromara.common.sdk.mqtt.MqttReply; +import org.dromara.common.sdk.mqtt.TopicConst; import org.dromara.common.sdk.mqtt.requests.TopicRequestsRequest; import org.dromara.common.sdk.mqtt.requests.TopicRequestsResponse; -import org.dromara.common.sdk.mqtt.services.ServicesPublish; -import org.dromara.common.sdk.mqtt.services.ServicesReplyData; -import org.dromara.common.sdk.mqtt.services.TopicServicesResponse; +import org.dromara.common.sdk.mqtt.services.*; import org.dromara.common.sdk.mqtt.state.TopicStateRequest; import org.dromara.common.sdk.mqtt.state.TopicStateResponse; import jakarta.annotation.Resource; @@ -23,6 +23,11 @@ import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; +import java.util.Objects; +import java.util.UUID; + +import static org.springframework.integration.context.IntegrationContextUtils.DEFAULT_TIMEOUT; + /** * @author sean @@ -34,6 +39,10 @@ public abstract class AbstractOfflineMapService { @Resource private ServicesPublish servicesPublish; + @Resource + private MqttGatewayPublish gatewayPublish; + + /** * When the offline map is closed, offline map synchronization will no longer automatically synchronize. * @param request data @@ -78,10 +87,20 @@ public abstract class AbstractOfflineMapService { * @param request data * @param headers The headers for a {@link Message}. * @return events_reply + * TopicRequestsResponse> */ @ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_OFFLINE_MAP_GET, outputChannel = ChannelName.OUTBOUND_REQUESTS) @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_1, include = GatewayTypeEnum.DOCK2) - public TopicRequestsResponse> offlineMapGet(TopicRequestsRequest request, MessageHeaders headers) { - throw new UnsupportedOperationException("offlineMapGet not implemented"); + public void offlineMapGet(TopicRequestsRequest request, MessageHeaders headers) { + MqttReply success = MqttReply.success(); + String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(request.getGateway()) + TopicConst.SERVICES_SUF; + gatewayPublish.publish( + topic,0, new TopicServicesRequest<>() + .setTid(UUID.randomUUID().toString()) + .setBid(null) + .setTimestamp(System.currentTimeMillis()) + .setMethod("offline_map_get") + .setData(success)); + //throw new UnsupportedOperationException("offlineMapGet not implemented"); } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/LiveStreamServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/LiveStreamServiceImpl.java index 5bea65e..abdb543 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/LiveStreamServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/LiveStreamServiceImpl.java @@ -290,6 +290,9 @@ public class LiveStreamServiceImpl implements ILiveStreamService { return agoraUrl.setSn(videoId.getDroneSn()); case RTMP: LivestreamRtmpUrl rtmpUrl = (LivestreamRtmpUrl) url.clone(); + if(videoId.getDroneSn().equals("7CTXN2T00B07C5") || videoId.getDroneSn().equals("1581F6Q8X24CC00G02JB")){ + rtmpUrl.setUrl("rtmp://106.13.57.190/live/livesteam/"); + } return rtmpUrl.setUrl(rtmpUrl.getUrl() + videoId.getDroneSn() + "-" + videoId.getPayloadIndex().toString()); case GB28181: String random = String.valueOf(Math.abs(videoId.getDroneSn().hashCode()) % 1000);