From 2abd0e479bd68cc377d77ac8178cc6b21783fcf1 Mon Sep 17 00:00:00 2001
From: heng.zhang1 <512061637@qq.com>
Date: Wed, 16 Sep 2020 16:54:24 +0800
Subject: [PATCH] 盘口优化

---
 src/main/java/com/xcong/excoin/websocket/TradePlateSendWebSocket.java |   45 +++++++++++++++------------------------------
 1 files changed, 15 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/websocket/TradePlateSendWebSocket.java b/src/main/java/com/xcong/excoin/websocket/TradePlateSendWebSocket.java
index 15d4168..fc1ccab 100644
--- a/src/main/java/com/xcong/excoin/websocket/TradePlateSendWebSocket.java
+++ b/src/main/java/com/xcong/excoin/websocket/TradePlateSendWebSocket.java
@@ -78,13 +78,10 @@
      */
     @OnMessage
     public void onMessage(String message, Session session) {
-        //log.info("服务端收到客户端[{}]的消息:{}", session.getId(), message);
-        // 订阅方法 {sub: 'market.' + symbol + '.depth.' + this._caculateType(),id: symbol
-        //}
+        // 盘口订阅方法 {sub: 'market.btcusdt.depth.10,id: symbol}
         JSONObject jsonObject = JSON.parseObject(message);
         // 盘口的判断
         if (jsonObject.containsKey("sub") && jsonObject.get("sub").toString().contains("depth")) {
-            //log.info("订阅盘口消息:{}", session.getId());
             String sub = jsonObject.get("sub").toString();
             String symbol = sub.split("\\.")[1];
             symbol = CoinTypeConvert.convert(symbol);
@@ -121,8 +118,7 @@
         }
         // 取消盘口订阅
         if (jsonObject.containsKey("unsub") && jsonObject.get("unsub").toString().contains("depth")) {
-            // `market.${symbol}.kline.${strPeriod}
-            //log.info("取消订阅盘口消息:{}", session.getId());
+            // {unsub:'market.btcusdt.kline.1min'}
             String unsub = jsonObject.get("unsub").toString();
             String[] split = unsub.split("\\.");
             String symbol = split[1];
@@ -133,19 +129,11 @@
             }
         }
 
-
         // 最新K线订阅
-
-        // 根据消息判断这个用户需要订阅哪种数据
-        // {sub: `market.${symbol}.kline.${strPeriod}`,
-        //            symbol: symbol,
-        //            period: strPeriod
-        //}
-        // 取消订阅 {unsub: xxx(标识)}
         if (jsonObject.containsKey("sub") && jsonObject.get("sub").toString().contains("kline")) {
             // 订阅
+            // {sub: 'market.btcusdt.kline.1min'}
             String sub = jsonObject.get("sub").toString();
-            log.info("订阅最新K线消息:{}", sub);
             String[] split = sub.split("\\.");
             String symbol = split[1];
             symbol = CoinTypeConvert.convert(symbol);
@@ -154,26 +142,22 @@
                 period = "1hour";
             }
             String key = symbol + "-" + period;
-            log.info("最新K线key:{}", key);
             if (klineClients.containsKey(key)) {
                 // 有这个币种K线
                 Map<String, Session> stringSessionMap = klineClients.get(key);
                 if (!stringSessionMap.containsKey(session.getId())) {
                     stringSessionMap.put(session.getId(), session);
-                    log.info("放入最新K线Map:{}", key);
                 }
             } else {
                 Map<String, Session> stringSessionMap = new HashMap<>();
                 stringSessionMap.put(session.getId(), session);
                 klineClients.put(key, stringSessionMap);
-                log.info("放入最新K线Map:{}", key);
             }
         }
 
         // 取消订阅
         if (jsonObject.containsKey("unsub") && jsonObject.get("unsub").toString().contains("kline")) {
-            // `market.${symbol}.kline.${strPeriod}
-            //log.info("取消订阅最新K消息:{}", session.getId());
+            // {unsub:'market.${symbol}.kline.${strPeriod}'}
             String unsub = jsonObject.get("unsub").toString();
             String[] split = unsub.split("\\.");
             String strPeriod = split[3];
@@ -185,7 +169,6 @@
             String key = symbol + "-" + strPeriod;
             if (klineClients.containsKey(key)) {
                 klineClients.get(key).remove(session.getId());
-                //session.getAsyncRemote().sendText(message);
             }
         }
 
@@ -239,7 +222,7 @@
     }
 
     /**
-     * 群发消息
+     * 发送盘口消息
      *
      * @param message 消息内容
      */
@@ -249,38 +232,40 @@
             for (Map.Entry<String, Session> sessionEntry : nekk.entrySet()) {
                 Session toSession = sessionEntry.getValue();
                 // 排除掉自己
-                //if (!fromSession.getId().equals(toSession.getId())) {
-               // log.info("服务端给客户端[{}]发送盘口消息{}", toSession.getId(), message);
                 boolean open = toSession.isOpen();
                 if (open) {
                     toSession.getAsyncRemote().sendText(message);
                 }
-
-                //  }
             }
         }
 
     }
 
+    /**
+     * 发送历史K线
+     * @param message, toSession
+     * @return void
+     */
     public void sendMessageHistory(String message, Session toSession) {
-      //  log.info("服务端给客户端[{}]发送历史K线", toSession.getId());
         boolean open = toSession.isOpen();
         if (open) {
             toSession.getAsyncRemote().sendText(message);
         }
     }
 
+    /**
+     * 发送最新K线
+     * @param symbol, period, message, fromSession
+     * @return void
+     */
     public void sendMessageKline(String symbol, String period, String message, Session fromSession) {
-
         String key = symbol + "-" + period;
-        //log.info("发送最新K线[{}],数据[{}]",key,message);
         if (klineClients.containsKey(key)) {
             Map<String, Session> stringSessionMap = klineClients.get(key);
             for (Map.Entry<String, Session> sessionEntry : stringSessionMap.entrySet()) {
                 Session toSession = sessionEntry.getValue();
                 boolean open = toSession.isOpen();
                 if (open) {
-                    log.info("服务端给客户端[{}]发送最新K线消息{}", toSession.getId(), message);
                     toSession.getAsyncRemote().sendText(message);
                 }
             }

--
Gitblit v1.9.1