setServerConfig 改为 post

添加 openRtpServer,closeRtpServer
This commit is contained in:
shikong 2023-08-20 04:14:00 +08:00
parent 3685e4e648
commit d6960a64c4
8 changed files with 114 additions and 20 deletions

View File

@ -0,0 +1,17 @@
package cn.skcks.docking.gb28181.media.dto.rtp;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class CloseRtpServer {
private String streamId;
}

View File

@ -0,0 +1,12 @@
package cn.skcks.docking.gb28181.media.dto.rtp;
import cn.skcks.docking.gb28181.media.dto.status.ResponseStatus;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;
@Data
public class CloseRtpServerResp {
private ResponseStatus code;
private Integer hit;
}

View File

@ -0,0 +1,19 @@
package cn.skcks.docking.gb28181.media.dto.rtp;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import feign.Param;
import lombok.*;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class OpenRtpServer {
private int port;
private int tcpMode;
private String streamId;
}

View File

@ -0,0 +1,10 @@
package cn.skcks.docking.gb28181.media.dto.rtp;
import cn.skcks.docking.gb28181.media.dto.status.ResponseStatus;
import lombok.Data;
@Data
public class OpenRtpServerResp {
private ResponseStatus code;
private Integer port;
}

View File

@ -2,15 +2,19 @@ package cn.skcks.docking.gb28181.media.proxy;
import cn.skcks.docking.gb28181.media.dto.config.ServerConfig;
import cn.skcks.docking.gb28181.media.dto.response.ZlmResponse;
import cn.skcks.docking.gb28181.media.dto.rtp.CloseRtpServer;
import cn.skcks.docking.gb28181.media.dto.rtp.CloseRtpServerResp;
import cn.skcks.docking.gb28181.media.dto.rtp.OpenRtpServer;
import cn.skcks.docking.gb28181.media.dto.rtp.OpenRtpServerResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.service.annotation.HttpExchange;
import java.util.List;
import java.util.Map;
@FeignClient(name="zlmMediaServerProxy",url = "${media.url}")
@HttpExchange
@ -24,6 +28,12 @@ public interface ZlmMediaHttpClient {
@GetMapping("/index/api/getServerConfig")
ResponseEntity<String> getServerConfigResponseEntity(@RequestParam String secret);
@GetMapping("/index/api/setServerConfig")
String setServerConfig(@RequestParam String secret, @SpringQueryMap Map<String,Object> config);
@PostMapping("/index/api/setServerConfig")
String setServerConfig(@RequestParam String secret, @RequestBody ServerConfig config);
@PostMapping("/index/api/openRtpServer")
OpenRtpServerResp openRtpServer(@RequestParam String secret, @RequestBody OpenRtpServer params);
@PostMapping("/index/api/closeRtpServer")
CloseRtpServerResp closeRtpServer(@RequestParam String secret, @RequestBody CloseRtpServer params);
}

View File

@ -3,6 +3,10 @@ package cn.skcks.docking.gb28181.media.proxy;
import cn.skcks.docking.gb28181.common.json.JsonUtils;
import cn.skcks.docking.gb28181.media.dto.config.ServerConfig;
import cn.skcks.docking.gb28181.media.dto.response.ZlmResponse;
import cn.skcks.docking.gb28181.media.dto.rtp.CloseRtpServer;
import cn.skcks.docking.gb28181.media.dto.rtp.CloseRtpServerResp;
import cn.skcks.docking.gb28181.media.dto.rtp.OpenRtpServer;
import cn.skcks.docking.gb28181.media.dto.rtp.OpenRtpServerResp;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.Builder;
import org.springframework.http.ResponseEntity;
@ -11,7 +15,7 @@ import java.util.List;
import java.util.Map;
@Builder
public class ZlmMediaHttpService {
public class ZlmMediaService {
private String secret;
private ZlmMediaHttpClient exchange;
@ -30,7 +34,14 @@ public class ZlmMediaHttpService {
}
public String setServerConfig(ServerConfig config){
Map<String,Object> map = JsonUtils.mapper.convertValue(config, new TypeReference<>() {});
return exchange.setServerConfig(secret, map);
return exchange.setServerConfig(secret, config);
}
public OpenRtpServerResp openRtpServer(OpenRtpServer params){
return exchange.openRtpServer(secret, params);
}
public CloseRtpServerResp closeRtpServer(CloseRtpServer params){
return exchange.closeRtpServer(secret, params);
}
}

View File

@ -12,8 +12,8 @@ public class ZlmProxy {
private final ZlmMediaHttpClient exchange;
@Bean
public ZlmMediaHttpService zlMediaHttpService(){
return ZlmMediaHttpService.builder()
public ZlmMediaService zlMediaHttpService(){
return ZlmMediaService.builder()
.secret(mediaConfig.getSecret())
.exchange(exchange)
.build();

View File

@ -1,18 +1,14 @@
package cn.skcks.docking.gb28181.test;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.date.ZoneUtil;
import cn.skcks.docking.gb28181.common.json.JsonResponse;
import cn.skcks.docking.gb28181.common.json.JsonUtils;
import cn.skcks.docking.gb28181.media.config.ZlmMediaConfig;
import cn.skcks.docking.gb28181.media.dto.config.ApiConfig;
import cn.skcks.docking.gb28181.media.dto.config.ServerConfig;
import cn.skcks.docking.gb28181.media.dto.response.ZlmResponse;
import cn.skcks.docking.gb28181.media.dto.response.ZlmResponseConvertor;
import cn.skcks.docking.gb28181.media.proxy.ZlmMediaHttpService;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import cn.skcks.docking.gb28181.media.dto.rtp.CloseRtpServer;
import cn.skcks.docking.gb28181.media.dto.rtp.OpenRtpServer;
import cn.skcks.docking.gb28181.media.proxy.ZlmMediaService;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@ -25,7 +21,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.*;
@ -35,7 +30,7 @@ import java.util.*;
@ExtendWith(SpringExtension.class)
public class MediaServiceTest {
@Autowired
private ZlmMediaHttpService zlMediaHttpService;
private ZlmMediaService zlMediaHttpService;
@Test
void test(){
@ -66,14 +61,34 @@ public class MediaServiceTest {
}
@Test
@SneakyThrows
void testApi(){
log.info("{}", zlMediaHttpService.getApiList());
int port = 60000;
String streamId = "testStream";
OpenRtpServer openRtpServer = new OpenRtpServer(port,0,streamId);
log.info("{}", zlMediaHttpService.openRtpServer(openRtpServer));
Thread.sleep(500);
CloseRtpServer closeRtpServer = new CloseRtpServer(streamId);
log.info("{}", zlMediaHttpService.closeRtpServer(closeRtpServer));
}
@Test
void httpBinTest(){
void configTest(){
ZlmResponse<List<ServerConfig>> resp = zlMediaHttpService.getServerConfig();
log.info("{}", resp);
ServerConfig config = resp.getData().get(0);
config.getApi().setApiDebug(0);
log.info("{}", zlMediaHttpService.setServerConfig(config));
resp = zlMediaHttpService.getServerConfig();
log.info("{}", resp);
config.getApi().setApiDebug(1);
log.info("{}", zlMediaHttpService.setServerConfig(config));
resp = zlMediaHttpService.getServerConfig();
log.info("{}", resp);
log.info("{}", zlMediaHttpService.setServerConfig(config));
}
}