websocket重新配置發送指定命令--4WSControllerAdapter適配器

本次將連接人數、發送還是連接的狀態、頁面信息處理加以完善

如果您這邊分開調用理解的不是太好可以借鑑我之前發佈的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);

}

}

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章