Helius
2021-02-24 5285d249e702eeab3ad3847aaa24523ef0f1a544
src/main/java/com/xcong/excoin/netty/dispatch/MsgDispatch.java
@@ -2,6 +2,10 @@
import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.netty.bean.RequestBean;
import com.xcong.excoin.netty.bean.SubRequest;
import com.xcong.excoin.netty.bean.SubResponse;
import com.xcong.excoin.netty.bean.UnSubResponse;
import com.xcong.excoin.netty.common.ChannelManager;
import com.xcong.excoin.netty.common.NettyTools;
import com.xcong.excoin.netty.logic.MsgLogic;
import io.netty.channel.ChannelHandlerContext;
@@ -27,14 +31,38 @@
    private MsgLogic msgLogic;
    public void webSocketDispatch(ChannelHandlerContext ctx, String 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);
            ctx.channel().writeAndFlush(NettyTools.webSocketBytes("params error"));
        JSONObject jsonObject = JSONObject.parseObject(msg);
        if (jsonObject.containsKey("sub")) {
            String sub = jsonObject.getString("sub");
            log.info("{}", sub);
            String[] split = sub.split("\\.");
            if (split.length != 4) {
                ctx.writeAndFlush("error");
                return;
            }
            ChannelManager.putSymbolSubChannel(split[1], ctx.channel(), split[2]);
            SubResponse subResponse = new SubResponse();
            subResponse.setSubbed(sub);
            subResponse.setId(jsonObject.getString("id"));
            subResponse.setTs(System.currentTimeMillis());
            subResponse.setStatus("ok");
            ctx.writeAndFlush(NettyTools.webSocketBytes(JSONObject.toJSONString(subResponse)));
        } else if (jsonObject.containsKey("unsub")) {
            String sub = jsonObject.getString("unsub");
            String[] split = sub.split("\\.");
            if (split.length != 4) {
                ctx.writeAndFlush("error");
                return;
            }
            ChannelManager.removeSymbolUnSubChannel(split[1], ctx.channel(), split[2]);
            UnSubResponse resp = new UnSubResponse();
            resp.setSubbed(sub);
            resp.setId(jsonObject.getString("id"));
            resp.setTs(System.currentTimeMillis());
            resp.setStatus("ok");
            ctx.writeAndFlush(resp);
        }
    }