ServerController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.genersoft.iot.vmp.vmanager.server;
  2. import com.genersoft.iot.vmp.VManageBootstrap;
  3. import com.genersoft.iot.vmp.common.VersionPo;
  4. import com.genersoft.iot.vmp.conf.VersionInfo;
  5. import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
  6. import com.genersoft.iot.vmp.service.IMediaServerService;
  7. import com.genersoft.iot.vmp.utils.SpringBeanFactory;
  8. import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
  9. import gov.nist.javax.sip.SipStackImpl;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiOperation;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.context.ConfigurableApplicationContext;
  14. import org.springframework.web.bind.annotation.*;
  15. import javax.sip.ListeningPoint;
  16. import javax.sip.ObjectInUseException;
  17. import javax.sip.SipProvider;
  18. import java.util.Iterator;
  19. import java.util.List;
  20. @SuppressWarnings("rawtypes")
  21. @Api(tags = "服务控制")
  22. @CrossOrigin
  23. @RestController
  24. @RequestMapping("/api/server")
  25. public class ServerController {
  26. @Autowired
  27. private ConfigurableApplicationContext context;
  28. @Autowired
  29. private IMediaServerService mediaServerService;
  30. @Autowired
  31. VersionInfo versionInfo;
  32. @ApiOperation("流媒体服务列表")
  33. @GetMapping(value = "/media_server/list")
  34. @ResponseBody
  35. public WVPResult<List<MediaServerItem>> getMediaServerList(){
  36. WVPResult<List<MediaServerItem>> result = new WVPResult<>();
  37. result.setCode(0);
  38. result.setMsg("success");
  39. result.setData(mediaServerService.getAll());
  40. return result;
  41. }
  42. @ApiOperation("在线流媒体服务列表")
  43. @GetMapping(value = "/media_server/online/list")
  44. @ResponseBody
  45. public WVPResult<List<MediaServerItem>> getOnlineMediaServerList(){
  46. WVPResult<List<MediaServerItem>> result = new WVPResult<>();
  47. result.setCode(0);
  48. result.setMsg("success");
  49. result.setData(mediaServerService.getAllOnline());
  50. return result;
  51. }
  52. @ApiOperation("获取流媒体服务")
  53. @GetMapping(value = "/media_server/one/{id}")
  54. @ResponseBody
  55. public WVPResult<MediaServerItem> getMediaServer(@PathVariable String id){
  56. WVPResult<MediaServerItem> result = new WVPResult<>();
  57. result.setCode(0);
  58. result.setMsg("success");
  59. result.setData(mediaServerService.getOne(id));
  60. return result;
  61. }
  62. @ApiOperation("重启服务")
  63. @GetMapping(value = "/restart")
  64. @ResponseBody
  65. public Object restart(){
  66. Thread restartThread = new Thread(new Runnable() {
  67. @Override
  68. public void run() {
  69. try {
  70. Thread.sleep(3000);
  71. SipProvider up = (SipProvider) SpringBeanFactory.getBean("udpSipProvider");
  72. SipStackImpl stack = (SipStackImpl)up.getSipStack();
  73. stack.stop();
  74. Iterator listener = stack.getListeningPoints();
  75. while (listener.hasNext()) {
  76. stack.deleteListeningPoint((ListeningPoint) listener.next());
  77. }
  78. Iterator providers = stack.getSipProviders();
  79. while (providers.hasNext()) {
  80. stack.deleteSipProvider((SipProvider) providers.next());
  81. }
  82. VManageBootstrap.restart();
  83. } catch (InterruptedException ignored) {
  84. } catch (ObjectInUseException e) {
  85. e.printStackTrace();
  86. }
  87. }
  88. });
  89. restartThread.setDaemon(false);
  90. restartThread.start();
  91. return "success";
  92. }
  93. @ApiOperation("版本信息")
  94. @GetMapping(value = "/version")
  95. @ResponseBody
  96. public WVPResult<VersionPo> getVersion(){
  97. WVPResult<VersionPo> result = new WVPResult<>();
  98. result.setCode(0);
  99. result.setMsg("success");
  100. result.setData(versionInfo.getVersion());
  101. return result;
  102. }
  103. }