diff --git a/basic-properties/src/main/java/ink/wgink/properties/websocket/WebSocketProperties.java b/basic-properties/src/main/java/ink/wgink/properties/websocket/WebSocketProperties.java index 20c2f339..82e88a37 100644 --- a/basic-properties/src/main/java/ink/wgink/properties/websocket/WebSocketProperties.java +++ b/basic-properties/src/main/java/ink/wgink/properties/websocket/WebSocketProperties.java @@ -14,10 +14,19 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "websocket") public class WebSocketProperties { + private String scheme; private String url; private Integer port; private String context; + public String getScheme() { + return scheme == null ? "ws" : scheme.trim(); + } + + public void setScheme(String scheme) { + this.scheme = scheme; + } + public String getUrl() { return url == null ? "127.0.0.1" : url.trim(); } diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/controller/route/WebrtcRouteDemoController.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/controller/route/WebrtcRouteDemoController.java new file mode 100644 index 00000000..437c699e --- /dev/null +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/controller/route/WebrtcRouteDemoController.java @@ -0,0 +1,27 @@ +package ink.wgink.module.instantmessage.controller.route; + +import ink.wgink.interfaces.consts.ISystemConstant; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +/** + * @ClassName: UnifiedMessagingRouteController + * @Description: 统一消息统计可视化路由 + * @Author: wanggeng + * @Date: 2021/10/24 3:30 下午 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "webrtc") +@RestController +@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/webrtc") +public class WebrtcRouteDemoController { + + @GetMapping("webrtc-one2one-demo") + public ModelAndView report() { + return new ModelAndView("webrtc-one2one-demo"); + } + +} diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/MessageTypeEnum.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/MessageTypeEnum.java index e06bddb6..e2653fcb 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/MessageTypeEnum.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/MessageTypeEnum.java @@ -41,11 +41,16 @@ public enum MessageTypeEnum { SEARCH_ONLINE_USER_FRIEND(4002, "查询朋友在线用户,body 为查询用户的 userId"), SEARCH_COUNT_NEED_TO_DEALT_WITH(4003, "查询全部待办总数"), + WEBRTC_CALL(5001, "webrtc呼叫"), + WEBRTC_ANSWER(5002, "webrtc接听"), + WEBRTC_REFUSE(5003, "webrtc拒绝"), + WEBRTC_JOIN(5004, "webrtc加入"), + STATUS_SEND(9001, "消息发送状态,body 为 StatusBody 的 JSON 字符串"), STATUS_SEND_ONLINE(9002, "发送在线状态,body 为 在线用户的ID JSONArray 字符串"), STATUS_SEND_OFFLINE(9003, "发送离线状态,body 为 离线用户的ID JSONArray 字符串"), - STATUS_RECEIVE(9101,"消息接受状态,body 为 StatusBody 的 JSON 字符串"); + STATUS_RECEIVE(9101, "消息接受状态,body 为 StatusBody 的 JSON 字符串"); private int value; private String summary; diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/WebSocketHandler.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/WebSocketHandler.java index f4362aad..c9210c60 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/WebSocketHandler.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/WebSocketHandler.java @@ -100,7 +100,7 @@ public class WebSocketHandler extends SimpleChannelInboundHandler { sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST)); return; } - WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(String.format("ws://%s:%s/%s", webSocketProperties.getUrl(), webSocketProperties.getPort(), webSocketProperties.getContext()), null, false); + WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(String.format("%s://%s:%s/%s", webSocketProperties.getScheme(), webSocketProperties.getUrl(), webSocketProperties.getPort(), webSocketProperties.getContext()), null, false); webSocketServerHandshaker = wsFactory.newHandshaker(req); if (webSocketServerHandshaker == null) { WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ctx.channel()); diff --git a/module-instant-message/src/main/resources/templates/webrtc-one2one-demo.html b/module-instant-message/src/main/resources/templates/webrtc-one2one-demo.html new file mode 100644 index 00000000..db91b97d --- /dev/null +++ b/module-instant-message/src/main/resources/templates/webrtc-one2one-demo.html @@ -0,0 +1,456 @@ + + + + + SRS + + + + + + + + + + + + +
+
+ 接收用户ID +
+
+ + + +
+
+ SRS: + + Room: + + Display: + + +
+ + +
+
+ + + + + +
+
+ + + + + + Refresh + + Alert +
+
+ + + + +
+ + + + +