override protected void solveFull(NwkMessageFull message, int connID) { eNwkMessageType mtype = (eNwkMessageType)message.getIdCard().getMessageType(); switch (mtype) { case eNwkMessageType.CONNECTION: int broadcastedUid = int.Parse(message.header.getHeader()); if (broadcastedUid == nwkUid) { log("just received confirmation from server form local client connection | " + nwkUid + " VS " + broadcastedUid); //server asked, we sent the answer ... connection ready ? onNetworkLinkReady(); } else { log("just received info that client uid : " + broadcastedUid + " just connected"); } break; case eNwkMessageType.SYNC: //if match then it's mine, dont do anything with it //si y a modif d'un objet local par un autre client il faut passer par un msg type : SYNC_ONCE ! //Debug.Log(Time.frameCount + " | SYNC | " + message.getIdCard().getMessageSender() + " VS " + nwkUid); if (message.getIdCard().getMessageSender() != NwkClient.nwkUid) { Debug.Log(" --> not mine, applying nwk data to local context"); NwkSyncer.instance.applyMessage(message); } break; case eNwkMessageType.TICK: //Debug.Log(Time.frameCount+" received tick data"); float pingToMs = NwkClient.nwkClient.getModule <NwkModPing>().getCurrentPing(true); // return ms TickData td = (TickData)message.bytes.getObjectFromByteData(); getModule <NwkTick>().setupTick(td.tickRate, td.tick, td.tickRateTimer, pingToMs); break; case eNwkMessageType.NONE: break; default: throw new NotImplementedException("full not implem " + mtype); } }
override protected void solveComplexe(NwkMessageComplexe message, int connID) { eNwkMessageType mtype = (eNwkMessageType)message.getIdCard().getMessageType(); switch (mtype) { case eNwkMessageType.NONE: break; default: throw new NotImplementedException("complexe not implem " + mtype); } }
protected override void solveBasic(NwkMessageBasic message, int connID) { log("basic : " + message.getIdCard().toString(), message.isSilent()); NwkMessageBasic bMessage; eNwkMessageType mtype = (eNwkMessageType)message.getIdCard().getMessageType(); switch (mtype) { case eNwkMessageType.PING: // client sent ping //ref timestamp to solve timeout pingMessage(message.getIdCard().getMessageSender()); //setup pong message bMessage = new NwkMessageBasic(); bMessage.getIdCard().setMessageType(eNwkMessageType.PONG); //log("sending pong to " + connID + " , " + message.getIdCard().getMessageSender()); //Send pong message sendWrapper.sendToSpecificClient(bMessage, connID); break; case eNwkMessageType.DISCONNECTION: getClientData(message.getIdCard().getMessageSender()).setAsDisconnected(); //msg.clean(); break; case eNwkMessageType.TICK: //send tick data log("sending tick data to " + connID); NwkMessageFull mf = new NwkMessageFull(); mf.getIdCard().setupId(0, (int)eNwkMessageType.TICK); mf.bytes.setByteData(getModule <NwkTick>().data); sendWrapper.sendToSpecificClient(mf, connID); break; case eNwkMessageType.NONE: break; default: throw new NotImplementedException("base ; not implem " + mtype); } }
override protected void solveTransaction(NwkMessageTransaction message, int connID) { log("solving transaction : " + message.getIdCard().toString() + " => " + message.token); eNwkMessageType mtype = (eNwkMessageType)message.getIdCard().getMessageType(); switch (mtype) { case eNwkMessageType.CONNECTION_PINGPONG: // received msg from server that is asking for uid solvePingPong(message); break; case eNwkMessageType.NONE: break; default: throw new NotImplementedException("transaction not implem " + mtype); } }
protected override void solveFull(NwkMessageFull message, int connID) { log("msg " + message.getIdCard().toString(), message.isSilent()); eNwkMessageType mtype = (eNwkMessageType)message.getIdCard().getMessageType(); switch (mtype) { case eNwkMessageType.SYNC: //send new data to everybody //also specify sender to be able to filter on the other end sendWrapper.broadcastServerToAll(message, message.getIdCard().getMessageSender()); break; case eNwkMessageType.NONE: break; default: throw new NotImplementedException("full ; not implem " + mtype); } }
override protected void solveBasic(NwkMessageBasic message, int connID) { eNwkMessageType mtype = (eNwkMessageType)message.getIdCard().getMessageType(); //log("basic ? " + message.getIdCard().toString()); switch (mtype) { case eNwkMessageType.PONG: // received a pong, do something with it //inject pong delta getClientData(NwkClient.nwkUid).eventPing(getModule <NwkModPing>().pong()); break; case eNwkMessageType.NONE: break; default: throw new NotImplementedException("basic not implem " + mtype); } }
public void setMessageType(eNwkMessageType newType) => type = (int)newType;