From a0da4723b75c2bb13d2b4bef8fed196c678ddcde Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 26 May 2021 17:57:53 +0800 Subject: [PATCH] Merge branch 'otc' of http://120.27.238.55:7000/r/exchange into otc --- src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java | 20 ---- src/main/java/com/xcong/excoin/netty/bean/AuthRequest.java | 29 +++++ src/main/java/com/xcong/excoin/netty/bean/ResponseBean.java | 5 src/main/java/com/xcong/excoin/netty/common/ChannelManager.java | 15 +++ src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java | 2 src/main/java/com/xcong/excoin/netty/dispatch/MsgDispatch.java | 3 src/main/resources/application-app.yml | 2 pom.xml | 10 +- src/main/java/com/xcong/excoin/netty/bean/RequestBean.java | 81 ++------------- src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistory.java | 23 ++++ src/main/java/com/xcong/excoin/netty/logic/impl/MsgLogicImpl.java | 20 ++-- src/main/java/com/xcong/excoin/netty/server/WebSocketServer.java | 1 src/main/java/com/xcong/excoin/ExcoinApplication.java | 15 ++ src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java | 10 ++ src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserList.java | 26 +++++ 15 files changed, 148 insertions(+), 114 deletions(-) diff --git a/pom.xml b/pom.xml index 2b52ce0..c36163d 100644 --- a/pom.xml +++ b/pom.xml @@ -218,11 +218,11 @@ </dependency> - <dependency> - <groupId>io.netty</groupId> - <artifactId>netty-all</artifactId> - <version>${netty.version}</version> - </dependency> +<!-- <dependency>--> +<!-- <groupId>io.netty</groupId>--> +<!-- <artifactId>netty-all</artifactId>--> +<!-- <version>${netty.version}</version>--> +<!-- </dependency>--> <!--<dependency>--> <!--<groupId>com.squareup.okhttp3</groupId>--> diff --git a/src/main/java/com/xcong/excoin/ExcoinApplication.java b/src/main/java/com/xcong/excoin/ExcoinApplication.java index 8bcb06f..57b9e57 100644 --- a/src/main/java/com/xcong/excoin/ExcoinApplication.java +++ b/src/main/java/com/xcong/excoin/ExcoinApplication.java @@ -1,6 +1,12 @@ package com.xcong.excoin; +import com.xcong.excoin.netty.ChatServer; +import com.xcong.excoin.netty.server.WebSocketServer; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableAsync; @@ -15,10 +21,17 @@ @EnableAsync @SpringBootApplication @MapperScan("com.xcong.excoin.modules.*.dao") -public class ExcoinApplication { +public class ExcoinApplication implements CommandLineRunner { + + @Autowired + private WebSocketServer webSocketServer; public static void main(String[] args) { SpringApplication.run(ExcoinApplication.class, args); } + @Override + public void run(String... args) throws Exception { +// webSocketServer.start(); + } } diff --git a/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java index 627682c..85e1226 100644 --- a/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java +++ b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java @@ -87,7 +87,7 @@ } else { msg = exStr; } - DingTalkUtils.sendMsg(profiles + "--" + ex.getMessage(), msg, exceptionData.getId()); + DingTalkUtils.sendMsg(projectName + "-" +profiles + "--" + ex.getMessage(), msg, exceptionData.getId()); } catch (Exception e) { log.error("exception aop", e); } diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistory.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistory.java new file mode 100644 index 0000000..f156d0e --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgHistory.java @@ -0,0 +1,23 @@ +package com.xcong.excoin.modules.otc.entity; + + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.excoin.common.system.base.BaseEntity; +import lombok.Data; + +@Data +@TableName("otc_msg_history") +public class OtcMsgHistory extends BaseEntity { + + private Long memberId; + + private Long targetId; + + private String msg; + + /** + * 消息类型 1-文本 2-图片 + */ + private Integer msgType; + +} diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserList.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserList.java new file mode 100644 index 0000000..578ad0d --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMsgUserList.java @@ -0,0 +1,26 @@ +package com.xcong.excoin.modules.otc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.excoin.common.system.base.BaseEntity; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("otc_msg_user_list") +public class OtcMsgUserList extends BaseEntity { + + private Long memberId; + + private Long targetId; + + /** + * 是否已读 1-是 2-否 + */ + private Integer isRead; + + /** + * 最后聊天时间 + */ + private Date lastMsgTime; +} diff --git a/src/main/java/com/xcong/excoin/netty/bean/AuthRequest.java b/src/main/java/com/xcong/excoin/netty/bean/AuthRequest.java new file mode 100644 index 0000000..9366538 --- /dev/null +++ b/src/main/java/com/xcong/excoin/netty/bean/AuthRequest.java @@ -0,0 +1,29 @@ +package com.xcong.excoin.netty.bean; + + +import java.io.Serializable; + +public class AuthRequest implements Serializable { + + private static final long serialVersionUID = 5557983797622950620L; + + private Integer cmd; + + private String token; + + public Integer getCmd() { + return cmd; + } + + public void setCmd(Integer cmd) { + this.cmd = cmd; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } +} diff --git a/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java b/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java index ea7ab2b..15936f6 100644 --- a/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java +++ b/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java @@ -14,6 +14,16 @@ private String content; + private Integer cmd; + + public Integer getCmd() { + return cmd; + } + + public void setCmd(Integer cmd) { + this.cmd = cmd; + } + public String getTo() { return to; } diff --git a/src/main/java/com/xcong/excoin/netty/bean/RequestBean.java b/src/main/java/com/xcong/excoin/netty/bean/RequestBean.java index 289b4ae..22bd4ab 100644 --- a/src/main/java/com/xcong/excoin/netty/bean/RequestBean.java +++ b/src/main/java/com/xcong/excoin/netty/bean/RequestBean.java @@ -3,88 +3,31 @@ import java.io.Serializable; -/** - * @author wzy - * @email wangdoubleone@gmail.com - * @date 2019-05-09 - */ + public class RequestBean implements Serializable { private static final long serialVersionUID = 1L; /** - * 请求类型 + * 请求类型 1-鉴权 2-发送消息 */ - private String type; + private Integer type; - /** - * 当前通道id - */ - private String channelId; + private Object data; - /** - * web端通道ID - */ - private String reqId; + public Object getData() { + return data; + } - /** - * 请求参数 - */ - private String params; + public void setData(Object data) { + this.data = data; + } - /** - * 手持端是否同意连接 0-否 1-是 - */ - private String tag; - - public String getType() { + public Integer getType() { return type; } - public void setType(String type) { + public void setType(Integer type) { this.type = type; - } - - public String getChannelId() { - return channelId; - } - - public void setChannelId(String channelId) { - this.channelId = channelId; - } - - public String getParams() { - return params; - } - - public void setParams(String params) { - this.params = params; - } - - public String getReqId() { - return reqId; - } - - public void setReqId(String reqId) { - this.reqId = reqId; - } - - public String getTag() { - return tag; - } - - public void setTag(String tag) { - this.tag = tag; - } - - @Override - public String toString() { - return "RequestBean{" + - "type='" + type + '\'' + - ", channelId='" + channelId + '\'' + - ", reqId='" + reqId + '\'' + - ", params='" + params + '\'' + - ", tag='" + tag + '\'' + - '}'; } } diff --git a/src/main/java/com/xcong/excoin/netty/bean/ResponseBean.java b/src/main/java/com/xcong/excoin/netty/bean/ResponseBean.java index b595122..78a1fbf 100644 --- a/src/main/java/com/xcong/excoin/netty/bean/ResponseBean.java +++ b/src/main/java/com/xcong/excoin/netty/bean/ResponseBean.java @@ -5,10 +5,7 @@ import java.util.List; import java.util.Map; -/** - * @author wzy - * @date 2020-04-18 16:17 - **/ + public class ResponseBean implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java b/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java index 5d158f6..0167807 100644 --- a/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java +++ b/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java @@ -28,16 +28,31 @@ CHANNEL_MAP.put(channel.id().asShortText(), channel.id()); } + public static void addWsChannel(Channel channel, Long memberId) { + WEBSOCKET_GROUP.add(channel); + CHANNEL_MAP.put(memberId.toString(), channel.id()); + } + public static void removeWebSocketChannel(Channel channel) { WEBSOCKET_GROUP.remove(channel); CHANNEL_MAP.remove(channel.id().asShortText()); } + public static void removeWsChannel(Channel channel, Long memberId) { + WEBSOCKET_GROUP.remove(channel); + CHANNEL_MAP.remove(memberId.toString()); + } + public static Channel findWebSocketChannel(String id){ ChannelId channelId = CHANNEL_MAP.get(id); return WEBSOCKET_GROUP.find(channelId); } + public static Channel findWsChannel(Long id){ + ChannelId channelId = CHANNEL_MAP.get(id.toString()); + return WEBSOCKET_GROUP.find(channelId); + } + public static ChannelGroup getWebSocketGroup() { return WEBSOCKET_GROUP; } diff --git a/src/main/java/com/xcong/excoin/netty/dispatch/MsgDispatch.java b/src/main/java/com/xcong/excoin/netty/dispatch/MsgDispatch.java index 540fd36..9a296df 100644 --- a/src/main/java/com/xcong/excoin/netty/dispatch/MsgDispatch.java +++ b/src/main/java/com/xcong/excoin/netty/dispatch/MsgDispatch.java @@ -27,10 +27,9 @@ private MsgLogic msgLogic; public void webSocketDispatch(ChannelHandlerContext ctx, String msg) { + log.info("==========={}", msg); RequestBean requestBean = null; try { - requestBean = JSONObject.parseObject(msg, RequestBean.class); - requestBean.setChannelId(ctx.channel().id().asShortText()); msgLogic.webSocketMsgLogic(requestBean); } catch (Exception e) { log.info("#websocket json error:{}#", e); diff --git a/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java b/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java index d1c9322..2b0b493 100644 --- a/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java +++ b/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java @@ -18,24 +18,4 @@ public class WebSocketLogic { - public void webReqConnection(RequestBean requestBean) { - Channel channel = ChannelManager.findWebSocketChannel(requestBean.getChannelId()); - channel.writeAndFlush(NettyTools.webSocketBytes("this is ok")); - } - - public void reqHomeSymbols(RequestBean requestBean) { - String params = requestBean.getParams(); - JSONObject jsonObject = JSONObject.parseObject(params); - String token = jsonObject.getString("token"); - String type = jsonObject.getString("type"); - ResponseBean responseBean = ResponseBean.ok(requestBean.getType(), null); - - Channel channel = ChannelManager.findWebSocketChannel(requestBean.getChannelId()); - channel.writeAndFlush(NettyTools.webSocketBytes(JSONObject.toJSONString(responseBean))); - } - - public void defaultReq(RequestBean requestBean) { - Channel channel = ChannelManager.findWebSocketChannel(requestBean.getChannelId()); - channel.writeAndFlush("this is error type"); - } } diff --git a/src/main/java/com/xcong/excoin/netty/logic/impl/MsgLogicImpl.java b/src/main/java/com/xcong/excoin/netty/logic/impl/MsgLogicImpl.java index c1fbb4c..7fb6fa9 100644 --- a/src/main/java/com/xcong/excoin/netty/logic/impl/MsgLogicImpl.java +++ b/src/main/java/com/xcong/excoin/netty/logic/impl/MsgLogicImpl.java @@ -20,16 +20,16 @@ @Override public void webSocketMsgLogic(RequestBean requestBean) { - switch (requestBean.getType()) { - case Contans.WEB_REQ_CONNECTION : - webSocketLogic.webReqConnection(requestBean); - break; - case Contans.HOME_SYMBOLS: - webSocketLogic.reqHomeSymbols(requestBean); - default: - webSocketLogic.defaultReq(requestBean); - break; - } +// switch (requestBean.getType()) { +// case Contans.WEB_REQ_CONNECTION : +// webSocketLogic.webReqConnection(requestBean); +// break; +// case Contans.HOME_SYMBOLS: +// webSocketLogic.reqHomeSymbols(requestBean); +// default: +// webSocketLogic.defaultReq(requestBean); +// break; +// } } diff --git a/src/main/java/com/xcong/excoin/netty/server/WebSocketServer.java b/src/main/java/com/xcong/excoin/netty/server/WebSocketServer.java index 84b1290..a2d9773 100644 --- a/src/main/java/com/xcong/excoin/netty/server/WebSocketServer.java +++ b/src/main/java/com/xcong/excoin/netty/server/WebSocketServer.java @@ -19,7 +19,6 @@ @Component("webSocketServer") public class WebSocketServer implements ChatServer { - private EventLoopGroup boss = new NioEventLoopGroup(); private EventLoopGroup work = new NioEventLoopGroup(); diff --git a/src/main/resources/application-app.yml b/src/main/resources/application-app.yml index 9594a28..0eda13e 100644 --- a/src/main/resources/application-app.yml +++ b/src/main/resources/application-app.yml @@ -101,7 +101,7 @@ other-job: true loop-job: false rabbit-consumer: false - block-job: false + block-job: true otc-job: true system: name: otc -- Gitblit v1.9.1