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

本次將連接人數(shù)、發(fā)送還是連接的狀態(tài)、頁(yè)面信息處理加以完善

如果您這邊分開(kāi)調(diào)用理解的不是太好可以借鑒我之前發(fā)布的websocket專題1~5參考查閱(忘記了是否都被發(fā)布)

WSControllerAdapter ?java文件 用于處理頁(yè)面發(fā)送過(guò)來(lái)的指令分類別處理

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適配器,用于適配業(yè)務(wù) * 、 * */

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);}}

/** * 重置比賽分?jǐn)?shù)及警告數(shù) * 重置時(shí)間,局?jǐn)?shù)增加1或者為加時(shí)賽標(biāo)識(shí) * @param reqMap */

private void resetScoreAndWarning(MapreqMap) {

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

if(ws == null) {log.error("連接已斷開(kāi)!");

????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); }}

/** * 下一局或加時(shí)賽 * 重置時(shí)間,局?jǐn)?shù)增加1或者為加時(shí)賽標(biāo)識(shí) * @param reqMap */

private void visibleHide(MapreqMap) {

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

????if(ws == null) {log.error("連接已斷開(kāi)!");
????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("連接已斷開(kāi)!");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();}/** * 下一局或加時(shí)賽 * 重置時(shí)間,局?jǐn)?shù)增加1或者為加時(shí)賽標(biāo)識(shí) * @param reqMap */private void nextRoundGlod(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_ES_CLIENT);if(ws == null) {log.error("連接已斷開(kāi)!");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("連接已斷開(kāi)!");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("連接已斷開(kāi)!");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("連接已斷開(kāi)!");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("連接已斷開(kāi)!");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("連接已斷開(kāi)!");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("連接已斷開(kāi)!");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); }} /** * 打開(kāi)投屏 * @param reqMap */void printOpen(MapreqMap) {WSBase ws = WebSocketPool.wsMap.get(Constants.CLIENTID_SCREENSAVER_CLIENT);if(ws == null) {log.error("連接已斷開(kāi)!");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);}}/** * 開(kāi)啟打分器頁(yè)面并發(fā)送場(chǎng)次信息 * @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("連接已斷開(kāi)!");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);}}}/** * 關(guān)閉打分器頁(yè)面跳轉(zhuǎn)回鎖屏頁(yè) * @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("連接已斷開(kāi)!");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);}}}/** * 打分器頁(yè)面?zhèn)鞅荣惥幪?hào) * @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("連接已斷開(kāi)!");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);

}

}

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容