From baa200761a7e05b371ed636dded89dc80367102f Mon Sep 17 00:00:00 2001 From: WenG <450292408@qq.com> Date: Tue, 14 Sep 2021 13:59:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=B1=BB=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9Ewebsocket=E7=8A=B6=E6=80=81=E4=B8=8E?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../websocket/enums/ClientSocketTypeEnum.java | 45 ++++++----- .../{SendStatusEnum.java => StatusEnum.java} | 14 ++-- .../exception/AppSessionException.java | 33 -------- ...ErrorException.java => TypeException.java} | 12 +-- ...ErrorException.java => UserException.java} | 12 +-- .../exception/UserSessionException.java | 33 -------- .../handler/text/WebSocketTextHandler.java | 78 ++++++++++--------- .../manager/WebSocketChannelManager.java | 10 +-- .../{SendStatusBody.java => StatusBody.java} | 14 ++-- .../main/resources/templates/chat-demo.html | 28 +++++-- 10 files changed, 117 insertions(+), 162 deletions(-) rename module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/{SendStatusEnum.java => StatusEnum.java} (74%) delete mode 100644 module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/AppSessionException.java rename module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/{TypeErrorException.java => TypeException.java} (57%) rename module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/{UserErrorException.java => UserException.java} (57%) delete mode 100644 module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserSessionException.java rename module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/{SendStatusBody.java => StatusBody.java} (68%) diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/ClientSocketTypeEnum.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/ClientSocketTypeEnum.java index ba19e209..ec8cbfa1 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/ClientSocketTypeEnum.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/ClientSocketTypeEnum.java @@ -15,30 +15,37 @@ public enum ClientSocketTypeEnum { REGISTER(1000, "注册消息,body 为 RegisterBody 的 JSON 字符串"), MESSAGE(2001, "文本消息"), - GROUP_MESSAGE(2002, "群发文本消息"), + MESSAGE_HREF(2002, "链接消息"), + MESSAGE_IMAGE(2003, "图片消息"), + MESSAGE_FILE(2004, "文件消息"), + MESSAGE_AUDIO(2005, "音频消息"), + MESSAGE_VIDEO(2006, "视频消息"), - SYSTEM_MESSAGE(3001, "系统消息"), - SYSTEM_GROUP_MESSAGE(3002, "系统群发问呢消息"), - SYSTEM_TARGET_MESSAGE(3003, "系统目标消息"), + MESSAGE_GROUP(2101, "群发文本消息"), + MESSAGE_GROUP_HREF(2102, "群发链接消息"), + MESSAGE_GROUP_IMAGE(2103, "群发图片消息"), + MESSAGE_GROUP_FILE(2104, "群发文件消息"), + MESSAGE_GROUP_AUDIO(2105, "群发音频消息"), + MESSAGE_GROUP_VIDEO(2106, "群发视频消息"), - LAYIM_HREF_MESSAGE(4001, "LAYIM 连接消息"), - LAYIM_IMAGE_MESSAGE(4002, "LAYIM 图片消息"), - LAYIM_FILE_MESSAGE(4003, "LAYIM 文件消息"), - LAYIM_AUDIO_MESSAGE(4004, "LAYIM 音频消息"), - LAYIM_VIDEO_MESSAGE(4005, "LAYIM 视频消息"), + MESSAGE_SYSTEM(2201, "系统消息"), + MESSAGE_SYSTEM_GROUP(2202, "系统群发消息"), + MESSAGE_SYSTEM_TARGET(2203, "系统目标消息"), - NOTICE(5001, "通知"), - NOTICE_GROUP_MESSAGE(5002, "群通知"), - NOTICE_TARGET_MESSAGE(5003, "目标通知,用于APP打开特定页面"), - UPDATE_SERVICE_HANDLE_STATUS(5004, "更新业务的处理状态"), + NOTICE(3001, "通知"), + NOTICE_GROUP_MESSAGE(3002, "群通知"), + NOTICE_TARGET_MESSAGE(3003, "目标通知,用于APP打开特定页面"), + UPDATE_SERVICE_HANDLE_STATUS(3004, "更新业务的处理状态"), - SEARCH_ONLINE_USER(6001, "查询全部在线用户,body 为查询用户的 userId"), - SEARCH_ONLINE_USER_FRIEND(6002, "查询朋友在线用户,body 为查询用户的 userId"), - SEARCH_COUNT_NEED_TO_DEALT_WITH(6003, "查询全部待办总数"), + SEARCH_ONLINE_USER(4001, "查询全部在线用户,body 为查询用户的 userId"), + SEARCH_ONLINE_USER_FRIEND(4002, "查询朋友在线用户,body 为查询用户的 userId"), + SEARCH_COUNT_NEED_TO_DEALT_WITH(4003, "查询全部待办总数"), - SEND_STATUS(1100, "消息发送状态,body 为 BaseResult 的 JSON 字符串"), - SEND_STATUS_ONLINE(1101, "发送在线状态,body 为 在线用户的ID JSONArray 字符串"), - SEND_STATUS_OFFLINE(1102, "发送离线状态,body 为 离线用户的ID JSONArray 字符串"); + STATUS_SEND(9001, "消息发送状态,body 为 BaseResult 的 JSON 字符串"), + STATUS_SEND_ONLINE(9002, "发送在线状态,body 为 在线用户的ID JSONArray 字符串"), + STATUS_SEND_OFFLINE(9003, "发送离线状态,body 为 离线用户的ID JSONArray 字符串"), + + STATUS_RECEIVED(9101,"消息接受状态"); private int value; private String summary; diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/SendStatusEnum.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/StatusEnum.java similarity index 74% rename from module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/SendStatusEnum.java rename to module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/StatusEnum.java index 137c635c..ea164a84 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/SendStatusEnum.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/enums/StatusEnum.java @@ -10,22 +10,22 @@ package ink.wgink.module.instantmessage.websocket.enums; * @Date: 2021/1/14 12:59 下午 * @Version: 1.0 */ -public enum SendStatusEnum { +public enum StatusEnum { SUCCESS(200, "成功"), FAILED(400, "失败"), MESSAGE_ERROR(401, "消息错误"), SESSION_ERROR(402, "会话错误"), CLIENT_SESSION_ERROR(403, "客户端会话错误"), - TYPE_ERROR(405, "类型错误"), - BODY_ERROR(406, "消息体错误"), - FROM_ERROR(407, "来源错误"), - TO_ERROR(408, "接受用户错误"); - + TYPE_ERROR(404, "类型错误"), + BODY_ERROR(405, "消息体错误"), + FROM_ERROR(406, "来源错误"), + TO_ERROR(407, "接受用户错误"), + RECEIVE_ERROR(408, "接收错误"); private int value; private String summary; - SendStatusEnum(int value, String summary) { + StatusEnum(int value, String summary) { this.value = value; this.summary = summary; } diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/AppSessionException.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/AppSessionException.java deleted file mode 100644 index 3c56e2b0..00000000 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/AppSessionException.java +++ /dev/null @@ -1,33 +0,0 @@ -package ink.wgink.module.instantmessage.websocket.exception; - -/** - * When you feel like quitting. Think about why you started - * 当你想要放弃的时候,想想当初你为何开始 - * - * @ClassName: AppException - * @Description: App异常 - * @Author: wanggeng - * @Date: 2021/1/14 12:23 下午 - * @Version: 1.0 - */ -public class AppSessionException extends SessionException { - - public AppSessionException() { - } - - public AppSessionException(String message) { - super(message); - } - - public AppSessionException(String message, Throwable cause) { - super(message, cause); - } - - public AppSessionException(Throwable cause) { - super(cause); - } - - public AppSessionException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/TypeErrorException.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/TypeException.java similarity index 57% rename from module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/TypeErrorException.java rename to module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/TypeException.java index b510bbef..749f855d 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/TypeErrorException.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/TypeException.java @@ -10,23 +10,23 @@ package ink.wgink.module.instantmessage.websocket.exception; * @Date: 2021/1/14 12:14 下午 * @Version: 1.0 */ -public class TypeErrorException extends BaseSocketException { - public TypeErrorException() { +public class TypeException extends BaseSocketException { + public TypeException() { } - public TypeErrorException(String message) { + public TypeException(String message) { super(message); } - public TypeErrorException(String message, Throwable cause) { + public TypeException(String message, Throwable cause) { super(message, cause); } - public TypeErrorException(Throwable cause) { + public TypeException(Throwable cause) { super(cause); } - public TypeErrorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + public TypeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } } diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserErrorException.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserException.java similarity index 57% rename from module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserErrorException.java rename to module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserException.java index e962687e..5461e5ef 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserErrorException.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserException.java @@ -10,24 +10,24 @@ package ink.wgink.module.instantmessage.websocket.exception; * @Date: 2021/1/14 12:51 下午 * @Version: 1.0 */ -public class UserErrorException extends BaseSocketException { +public class UserException extends BaseSocketException { - public UserErrorException() { + public UserException() { } - public UserErrorException(String message) { + public UserException(String message) { super(message); } - public UserErrorException(String message, Throwable cause) { + public UserException(String message, Throwable cause) { super(message, cause); } - public UserErrorException(Throwable cause) { + public UserException(Throwable cause) { super(cause); } - public UserErrorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } } diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserSessionException.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserSessionException.java deleted file mode 100644 index 83735158..00000000 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/exception/UserSessionException.java +++ /dev/null @@ -1,33 +0,0 @@ -package ink.wgink.module.instantmessage.websocket.exception; - -/** - * When you feel like quitting. Think about why you started - * 当你想要放弃的时候,想想当初你为何开始 - * - * @ClassName: UserException - * @Description: 用户异常 - * @Author: wanggeng - * @Date: 2021/1/14 12:21 下午 - * @Version: 1.0 - */ -public class UserSessionException extends SessionException { - - public UserSessionException() { - } - - public UserSessionException(String message) { - super(message); - } - - public UserSessionException(String message, Throwable cause) { - super(message, cause); - } - - public UserSessionException(Throwable cause) { - super(cause); - } - - public UserSessionException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/text/WebSocketTextHandler.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/text/WebSocketTextHandler.java index 3a6d300a..b9a430e3 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/text/WebSocketTextHandler.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/handler/text/WebSocketTextHandler.java @@ -3,14 +3,14 @@ package ink.wgink.module.instantmessage.websocket.handler.text; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import ink.wgink.module.instantmessage.websocket.enums.ClientSocketTypeEnum; -import ink.wgink.module.instantmessage.websocket.enums.SendStatusEnum; +import ink.wgink.module.instantmessage.websocket.enums.StatusEnum; import ink.wgink.module.instantmessage.websocket.exception.*; import ink.wgink.module.instantmessage.websocket.manager.WebSocketChannelManager; import ink.wgink.module.instantmessage.websocket.pojo.WebSocketClientMessage; import ink.wgink.module.instantmessage.websocket.pojo.WebSocketSession; import ink.wgink.module.instantmessage.websocket.pojo.body.IdsBody; import ink.wgink.module.instantmessage.websocket.pojo.body.RegisterBody; -import ink.wgink.module.instantmessage.websocket.pojo.body.SendStatusBody; +import ink.wgink.module.instantmessage.websocket.pojo.body.StatusBody; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; @@ -33,49 +33,53 @@ public class WebSocketTextHandler { public void handler(ChannelHandlerContext ctx, TextWebSocketFrame textWebSocketFrame) { WebSocketClientMessage clientSocketMessage = null; - SendStatusBody sendStatusBody = null; + StatusBody statusBody = null; try { clientSocketMessage = JSONObject.parseObject(textWebSocketFrame.text(), WebSocketClientMessage.class); if (clientSocketMessage.getType() == null) { - throw new TypeErrorException("Type类型不能为空"); + throw new TypeException("Type类型不能为空"); } if (StringUtils.isBlank(clientSocketMessage.getBody())) { throw new BodyException("Body主体不能为空"); } if (ClientSocketTypeEnum.REGISTER.getValue() == clientSocketMessage.getType()) { // 客户端注册消息 - sendStatusBody = clientRegisterSession(ctx.channel(), clientSocketMessage); + statusBody = clientRegisterSession(ctx.channel(), clientSocketMessage); } else if (ClientSocketTypeEnum.MESSAGE.getValue() == clientSocketMessage.getType()) { // 文本消息 sendText(ctx.channel(), clientSocketMessage); - } else if (ClientSocketTypeEnum.GROUP_MESSAGE.getValue() == clientSocketMessage.getType()) { + } else if (ClientSocketTypeEnum.MESSAGE_GROUP.getValue() == clientSocketMessage.getType()) { // 群发消息 sendGroupText(ctx.channel(), clientSocketMessage); } else if (ClientSocketTypeEnum.SEARCH_ONLINE_USER.getValue() == clientSocketMessage.getType()) { // 用户在线状态 listOnlineUser(ctx.channel(), clientSocketMessage); + } else if (ClientSocketTypeEnum.STATUS_RECEIVED.getValue() == clientSocketMessage.getType()) { + // 消息接收状态 + } else { + throw new TypeException("请求类型错误"); } } catch (SessionException e) { // 没有登录时,返回内容,关闭连接 - sendStatusBody = new SendStatusBody(SendStatusEnum.SESSION_ERROR.getValue(), SendStatusEnum.SESSION_ERROR, e.getMessage()); - clientSocketMessage.setBody(JSONObject.toJSONString(sendStatusBody)); + statusBody = new StatusBody(StatusEnum.SESSION_ERROR.getValue(), StatusEnum.SESSION_ERROR, e.getMessage()); + clientSocketMessage.setBody(JSONObject.toJSONString(statusBody)); WebSocketChannelManager.getInstance().sendText(ctx.channel(), clientSocketMessage); ctx.close(); - } catch (TypeErrorException e) { - sendStatusBody = new SendStatusBody(SendStatusEnum.SESSION_ERROR.getValue(), SendStatusEnum.SESSION_ERROR, e.getMessage()); + } catch (TypeException e) { + statusBody = new StatusBody(StatusEnum.TYPE_ERROR.getValue(), StatusEnum.SESSION_ERROR, e.getMessage()); } catch (BodyException e) { - sendStatusBody = new SendStatusBody(SendStatusEnum.SESSION_ERROR.getValue(), SendStatusEnum.SESSION_ERROR, e.getMessage()); - } catch (UserErrorException e) { - sendStatusBody = new SendStatusBody(SendStatusEnum.SESSION_ERROR.getValue(), SendStatusEnum.SESSION_ERROR, e.getMessage()); + statusBody = new StatusBody(StatusEnum.BODY_ERROR.getValue(), StatusEnum.SESSION_ERROR, e.getMessage()); + } catch (UserException e) { + statusBody = new StatusBody(StatusEnum.SESSION_ERROR.getValue(), StatusEnum.SESSION_ERROR, e.getMessage()); } catch (JSONException e) { clientSocketMessage = new WebSocketClientMessage(); clientSocketMessage.setSystem(true); - clientSocketMessage.setType(ClientSocketTypeEnum.SYSTEM_MESSAGE.getValue()); + clientSocketMessage.setType(ClientSocketTypeEnum.MESSAGE_SYSTEM.getValue()); clientSocketMessage.setFrom(WebSocketChannelManager.FORM_SYSTEM); - sendStatusBody = new SendStatusBody(SendStatusEnum.TO_ERROR.getValue(), SendStatusEnum.MESSAGE_ERROR, e.getMessage()); + statusBody = new StatusBody(StatusEnum.TO_ERROR.getValue(), StatusEnum.MESSAGE_ERROR, e.getMessage()); } finally { - if (sendStatusBody != null && ctx.channel().isOpen()) { - clientSocketMessage.setBody(JSONObject.toJSONString(sendStatusBody)); + if (statusBody != null && ctx.channel().isOpen()) { + clientSocketMessage.setBody(JSONObject.toJSONString(statusBody)); WebSocketChannelManager.getInstance().sendText(ctx.channel(), clientSocketMessage); } } @@ -89,11 +93,11 @@ public class WebSocketTextHandler { * @return * @throws SessionException */ - private SendStatusBody clientRegisterSession(Channel channel, WebSocketClientMessage clientSocketMessage) throws SessionException { + private StatusBody clientRegisterSession(Channel channel, WebSocketClientMessage clientSocketMessage) throws SessionException { RegisterBody registerBody = JSONObject.parseObject(clientSocketMessage.getBody(), RegisterBody.class); // 更新通道 WebSocketChannelManager.getInstance().addChannel(registerBody.getSessionId(), clientSocketMessage.getFrom(), channel); - return new SendStatusBody(SendStatusEnum.SUCCESS.getValue(), SendStatusEnum.SUCCESS, "OK"); + return new StatusBody(StatusEnum.SUCCESS.getValue(), StatusEnum.SUCCESS, "OK"); } /** @@ -101,11 +105,11 @@ public class WebSocketTextHandler { * * @param channel 通道 * @param webSocketClientMessage 客户端消息 - * @throws UserErrorException + * @throws UserException */ - private void sendText(Channel channel, WebSocketClientMessage webSocketClientMessage) throws UserErrorException, UserSessionException { + private void sendText(Channel channel, WebSocketClientMessage webSocketClientMessage) throws UserException { if (StringUtils.isBlank(webSocketClientMessage.getTo())) { - throw new UserErrorException("To 值不能为空"); + throw new UserException("To 值不能为空"); } webSocketClientMessage.setSystem(false); List webSocketSessions = WebSocketChannelManager.getInstance().listOnlineUser(webSocketClientMessage.getTo()); @@ -123,21 +127,20 @@ public class WebSocketTextHandler { /** * 群发文字消息 * - * @param channel 通道 + * @param fromChannel 发送通道 * @param webSocketClientMessage 客户端消息 - * @throws UserErrorException - * @throws UserSessionException + * @throws UserException */ - private void sendGroupText(Channel channel, WebSocketClientMessage webSocketClientMessage) throws UserErrorException, UserSessionException { + private void sendGroupText(Channel fromChannel, WebSocketClientMessage webSocketClientMessage) throws UserException { if (StringUtils.isBlank(webSocketClientMessage.getTo())) { - throw new UserErrorException("To 值不能为空"); + throw new UserException("To 值不能为空"); } webSocketClientMessage.setSystem(false); List toUserIds = new ArrayList<>(Sets.newHashSet(webSocketClientMessage.getTo().split(","))); List webSocketSessions = WebSocketChannelManager.getInstance().listOnlineUser(toUserIds); // 返回失败结果 if (webSocketSessions.isEmpty()) { - sendTextFailed(channel, webSocketClientMessage, "无用户在线"); + sendTextFailed(fromChannel, webSocketClientMessage, "无用户在线"); return; } // 发送消息 @@ -149,17 +152,16 @@ public class WebSocketTextHandler { /** * 在线用户列表 * - * @param channel 通道 + * @param fromChannel 通道 * @param webSocketClientMessage 消息体 - * @throws UserSessionException - * @throws UserErrorException + * @throws UserException */ - private void listOnlineUser(Channel channel, WebSocketClientMessage webSocketClientMessage) throws UserSessionException, UserErrorException { + private void listOnlineUser(Channel fromChannel, WebSocketClientMessage webSocketClientMessage) throws UserException { webSocketClientMessage.setSystem(true); webSocketClientMessage.setTo(webSocketClientMessage.getFrom()); IdsBody idsBody = JSONObject.parseObject(webSocketClientMessage.getBody(), IdsBody.class); if (idsBody.getIds() == null || idsBody.getIds().isEmpty()) { - sendTextFailed(channel, webSocketClientMessage, "用户ID列表为空"); + sendTextFailed(fromChannel, webSocketClientMessage, "用户ID列表为空"); return; } List webSocketSessions = WebSocketChannelManager.getInstance().listOnlineUser(idsBody.getIds()); @@ -169,21 +171,21 @@ public class WebSocketTextHandler { } idsBody = new IdsBody(); idsBody.setIds(new ArrayList<>(idSets)); - webSocketClientMessage.setType(ClientSocketTypeEnum.SEND_STATUS_ONLINE.getValue()); + webSocketClientMessage.setType(ClientSocketTypeEnum.STATUS_SEND_ONLINE.getValue()); webSocketClientMessage.setBody(JSONObject.toJSONString(idsBody)); - sendText(channel, webSocketClientMessage); + sendText(fromChannel, webSocketClientMessage); } /** - * 发送文本失败 + * 发送失败内容 * * @param fromChannel 来源通道 * @param webSocketClientMessage webSocket客户端消息 * @param msg */ public static void sendTextFailed(Channel fromChannel, WebSocketClientMessage webSocketClientMessage, String msg) { - webSocketClientMessage.setType(ClientSocketTypeEnum.SEND_STATUS.getValue()); - webSocketClientMessage.setBody(JSONObject.toJSONString(new SendStatusBody(SendStatusEnum.FAILED.getValue(), SendStatusEnum.FAILED, msg))); + webSocketClientMessage.setType(ClientSocketTypeEnum.STATUS_SEND.getValue()); + webSocketClientMessage.setBody(JSONObject.toJSONString(new StatusBody(StatusEnum.FAILED.getValue(), StatusEnum.FAILED, msg))); WebSocketChannelManager.getInstance().sendText(fromChannel, webSocketClientMessage); } diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/manager/WebSocketChannelManager.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/manager/WebSocketChannelManager.java index 34c74f44..215b17b3 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/manager/WebSocketChannelManager.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/manager/WebSocketChannelManager.java @@ -229,15 +229,15 @@ public class WebSocketChannelManager { /** * 单发 * - * @param channel - * @param webSocketClientMessage + * @param toChannel 接收人通道 + * @param webSocketClientMessage 发送内容 */ - public void sendText(Channel channel, WebSocketClientMessage webSocketClientMessage) { - if (channel == null || !channel.isOpen() || !channel.isActive()) { + public void sendText(Channel toChannel, WebSocketClientMessage webSocketClientMessage) { + if (toChannel == null || !toChannel.isOpen() || !toChannel.isActive()) { return; } TextWebSocketFrame textWebSocketFrame = new TextWebSocketFrame(JSONObject.toJSONString(webSocketClientMessage)); - channel.writeAndFlush(textWebSocketFrame); + toChannel.writeAndFlush(textWebSocketFrame); } /** diff --git a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/SendStatusBody.java b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/StatusBody.java similarity index 68% rename from module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/SendStatusBody.java rename to module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/StatusBody.java index 22e9e66b..7ed12477 100644 --- a/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/SendStatusBody.java +++ b/module-instant-message/src/main/java/ink/wgink/module/instantmessage/websocket/pojo/body/StatusBody.java @@ -1,6 +1,6 @@ package ink.wgink.module.instantmessage.websocket.pojo.body; -import ink.wgink.module.instantmessage.websocket.enums.SendStatusEnum; +import ink.wgink.module.instantmessage.websocket.enums.StatusEnum; /** * @ClassName: SendStatusBody @@ -9,15 +9,15 @@ import ink.wgink.module.instantmessage.websocket.enums.SendStatusEnum; * @Date: 2021/9/12 10:08 下午 * @Version: 1.0 */ -public class SendStatusBody { +public class StatusBody { private Integer code; - private SendStatusEnum status; + private StatusEnum status; private String msg; - public SendStatusBody() { + public StatusBody() { } - public SendStatusBody(int code, SendStatusEnum status, String msg) { + public StatusBody(int code, StatusEnum status, String msg) { this.code = code; this.status = status; this.msg = msg; @@ -31,11 +31,11 @@ public class SendStatusBody { this.code = code; } - public SendStatusEnum getStatus() { + public StatusEnum getStatus() { return status; } - public void setStatus(SendStatusEnum status) { + public void setStatus(StatusEnum status) { this.status = status; } diff --git a/module-instant-message/src/main/resources/templates/chat-demo.html b/module-instant-message/src/main/resources/templates/chat-demo.html index acbfcaea..1c8d4947 100644 --- a/module-instant-message/src/main/resources/templates/chat-demo.html +++ b/module-instant-message/src/main/resources/templates/chat-demo.html @@ -30,7 +30,7 @@
- 接收用户ID + 接收用户ID
@@ -41,12 +41,14 @@ 状态:未登录
+