美文网首页
websocket重新配置发送指定命令--4WSControll

websocket重新配置发送指定命令--4WSControll

作者: Nenezsnp | 来源:发表于2018-09-05 10:57 被阅读28次

    本次将连接人数、发送还是连接的状态、页面信息处理加以完善

    如果您这边分开调用理解的不是太好可以借鉴我之前发布的websocket专题1~5参考查阅(忘记了是否都被发布)

    WSControllerAdapter  java文件 用于处理页面发送过来的指令分类别处理

    import java.io.IOException;

    import java.util.HashMap;

    import java.util.Map;

    import org.apache.log4j.Logger;

    import org.sceu.tkdtas.constants.Constants;

    import org.sceu.tkdtas.handler.SDScoring;

    import org.sceu.tkdtas.support.JSONResultSet;

    import com.google.gson.Gson;

    /** * WSController适配器,用于适配业务 * 、 * */

    public class WSControllerAdapter {

    public static final Logger log = Logger.getLogger(

        WSControllerAdapter.class);

        Gson gson = new Gson();

    /** * 适配 * @param reqMap */

    public void adapter(String requestType, MapreqMap) {

    if(Constants.WS_REQTYPE_PRINT_OPEN.equals(requestType)) {printOpen(reqMap);}else if(Constants.WS_REQTYPE_PRINT_CLOSE.equals(requestType)){printClose(reqMap);}else if(Constants.WS_REQTYPE_START.equals(requestType)) {startTime();}else if(Constants.WS_REQTYPE_PAUSE.equals(requestType)) {pauseTime();}else if(Constants.WS_REQTYPE_MANUALSCORING.equals(requestType)) {manualScore(reqMap);}else if(Constants.WS_REQTYPE_MANUALWARNING.equals(requestType)) {manualWarning(reqMap);}else if(Constants.WS_REQTYPE_SD_SCORING.equals(requestType)) {sdScoring(reqMap);}else if(Constants.WS_REQTYPE_SD_PRINT_OPEN.equals(requestType)) {sdPrintOpen(reqMap);}else if(Constants.WS_REQTYPE_SD_PRINT_CLOSE.equals(requestType)) {sdPrintClose(reqMap);}else if(Constants.WS_REQTYPE_NEXT_ROUND_GLOD.equals(requestType)) {nextRoundGlod(reqMap);}else if(Constants.WS_REQTYPE_VISIBLE_HIDE.equals(requestType)) {visibleHide(reqMap);}else if(Constants.WS_REQTYPE_RESET_SCORE_WARNING.equals(requestType)) {resetScoreAndWarning(reqMap);}else if(Constants.WS_REQTYPE_SD_OPEN_SEND_MATCHNO.equals(requestType)) {sdOpenSendMatchesNo(reqMap);}else if(Constants.WS_REQTYPE_ES_MANUALSCORING.equals(requestType)) {esManualScore(reqMap);}}

    /** * 重置比赛分数及警告数 * 重置时间,局数增加1或者为加时赛标识 * @param reqMap */

    private void resetScoreAndWarning(MapreqMap) {

    WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);

    if(ws == null) {log.error("连接已断开!");

        ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);

        JSONResultSet js = new JSONResultSet();

        js.setsCode(Constants.STATUS_CODE_401);

        js.setMsg(Constants.STATUS_MSG_401);

        try {ws.sendMessage(gson.toJson(js));} 

        catch (IOException e) {log.error(e.getMessage(),e);}return;}

        MapsendMessageMap = new HashMap();

        sendMessageMap.put("CMD", Constants.CMD_RESET_SCORE_WARNING); 

         sendMessageMap.putAll(reqMap); 

         try {

            ws.sendMessage(gson.toJson(sendMessageMap));} 

        catch (IOException e) {log.error(e.getMessage(),e); }}

    /** * 下一局或加时赛 * 重置时间,局数增加1或者为加时赛标识 * @param reqMap */

    private void visibleHide(MapreqMap) {

        WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);

        if(ws == null) {log.error("连接已断开!");
        ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);

        JSONResultSet js = new JSONResultSet();

        js.setsCode(Constants.STATUS_CODE_401);

        js.setMsg(Constants.STATUS_MSG_401);

        try {ws.sendMessage(gson.toJson(js));} 

        catch (IOException e) {log.error(e.getMessage(),e);}return;}

        MapsendMessageMap = new HashMap();

        sendMessageMap.put("CMD", Constants.CMD_VISIBLE_HIDE); 

         sendMessageMap.putAll(reqMap); 

         try {ws.sendMessage(gson.toJson(sendMessageMap));} 

        catch (IOException e) {log.error(e.getMessage(),e); }}/** * 打分器打分 * @param reqMap */private void sdScoring(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);log.info("打分器:::::" + reqMap);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}//MapsendMessageMap = new HashMap();//sendMessageMap.put("CMD", Constants.CMD_SHOW_SD_SCORING); //sendMessageMap.putAll(reqMap); ////try {//ws.sendMessage(gson.toJson(sendMessageMap));//} catch (IOException e) {//log.error(e.getMessage(),e); //}SDScoring sdscoring = new SDScoring(reqMap);Thread thread = new Thread(sdscoring);thread.start();}/** * 下一局或加时赛 * 重置时间,局数增加1或者为加时赛标识 * @param reqMap */private void nextRoundGlod(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_ROUND_GLOD); sendMessageMap.putAll(reqMap); try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }}private void manualWarning(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_MANUALS_WARNING); sendMessageMap.putAll(reqMap); try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }}/** * 打分器打分成功向控制端传值 * @param reqMap */private void esManualScore(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_ES_MANUALS_CORING); sendMessageMap.putAll(reqMap); try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }}private void manualScore(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_MANUALS_CORING); sendMessageMap.putAll(reqMap); try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }}private void pauseTime() {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_PAUSE_TIME);try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }}private void startTime() {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_START_TIME);try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }}/** * 锁屏 * @param reqMap */private void printClose(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_CLOSE_ES);try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e); }} /** * 打开投屏 * @param reqMap */void printOpen(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_SCREENSAVER_CLIENT);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_401);js.setMsg(Constants.STATUS_MSG_401);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}return;}try {ws.sendMessage(Constants.CMD_OPEN_ES);} catch (IOException e) {log.error(e.getMessage(),e);}}/** * 开启打分器页面并发送场次信息 * @param reqMap */void sdPrintOpen(MapreqMap) {for(int i=1;i<4;i++){WSBase ws = WebSocketPool.wsMap.get(Constants.SD_CLIENT+"_"+i);if(ws == null) {System.out.println(Constants.SD_CLIENT+"_"+i);log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_402);js.setMsg(Constants.STATUS_MSG_402);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}//return;continue;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_OPEN_CONTROL_ES); sendMessageMap.putAll(reqMap); try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e);}}}/** * 关闭打分器页面跳转回锁屏页 * @param reqMap */void sdPrintClose(MapreqMap) {for(int i=1;i<4;i++){String sdClientId = Constants.SD_SCREEN_CLIENT+"_"+i;WSBase ws = WebSocketPool.wsMap.get(sdClientId);System.out.println("========================" + sdClientId + " && " + ws);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_402);js.setMsg(Constants.STATUS_MSG_402);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}//return;continue;}MapsendMessageMap = new HashMap();sendMessageMap.put("CMD", Constants.CMD_CLOSE_CONTROL_ES); sendMessageMap.putAll(reqMap); try {ws.sendMessage(gson.toJson(sendMessageMap));} catch (IOException e) {log.error(e.getMessage(),e);}}}/** * 打分器页面传比赛编号 * @param reqMap */void sdOpenSendMatchesNo(MapreqMap) {for(int i=1;i<4;i++){WSBase ws = WebSocketPool.wsMap.get(Constants.SD_SCREEN_CLIENT+"_"+i);if(ws == null) {log.error("连接已断开!");ws = WebSocketPool.wsMap.get(Constants.CLIENTID_CONTROLLER_CLIENT);JSONResultSet js = new JSONResultSet();js.setsCode(Constants.STATUS_CODE_402);js.setMsg(Constants.STATUS_MSG_402);try {ws.sendMessage(gson.toJson(js));} catch (IOException e) {log.error(e.getMessage(),e);}//return;continue;}MapsendMessageMap = new HashMap();

    sendMessageMap.put("CMD", Constants.CMD_SD_OPEN_SEND_MATCHNO); 

    sendMessageMap.putAll(reqMap); 

    try {

    ws.sendMessage(gson.toJson(sendMessageMap));

    } catch (IOException e) {

    log.error(e.getMessage(),e);

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:websocket重新配置发送指定命令--4WSControll

          本文链接:https://www.haomeiwen.com/subject/vyoowftx.html