本次將連接人數(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);
}
}
}
}