Exemple #1
0
    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);
        }
    }
Exemple #2
0
    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);
        }
    }
Exemple #3
0
    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);
        }
    }
Exemple #4
0
    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);
        }
    }
Exemple #5
0
    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);
        }
    }
Exemple #6
0
    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);
        }
    }
Exemple #7
0
 public void setMessageType(eNwkMessageType newType) => type = (int)newType;