public override void HandleSync(Sfs2X.Entities.Data.ISFSObject obj)
    {
        //Debug.Log ("Character Handling Sync");
        if(mode == SFSNetworkManager.Mode.LOCAL) return;

        bool consumed = false;

        if(obj.ContainsKey(statusDS)){
            statusRecp.ReceiveStatus(obj);
            consumed = true;
        }

        if (obj.ContainsKey(posDS)){
            posRecp.ReceiveResultant(obj);
            consumed = true;
        }

        if (obj.ContainsKey(movDS)){
            posRecp.ReceiveMoveDirection(obj);
            consumed = true;
        }

        if (obj.ContainsKey(animDS)){
            Debug.Log("Received animation update");
            animRecp.ReceiveState(obj);
            consumed = true;
        }

        if(!consumed){
            Debug.LogError("Unhandled sync");
        }
    }
    public override void OnHandleMessage(Sfs2X.Entities.Data.ISFSObject data)
    {
        ServerPublicKey pubKey = new ServerPublicKey();
        pubKey.FromSFSObject(data);

        EncryptionProvider.GetInstance().SetServerPublicKeyParameters(pubKey.parameters);
    }
Exemplo n.º 3
0
 public override bool FromSFSObject(Sfs2X.Entities.Data.ISFSObject data)
 {
     // We just pull the data straight out of the packet because we don't have a GetByteArray that works with encryption
     bool retVal = false;
     if (data.ContainsKey("key"))
     {
         ISFSObject publicKeyData = data.GetSFSObject("key");
         var tempParams = new RSAParameters();
         tempParams.Modulus = publicKeyData.GetByteArray("mod").Bytes;
         tempParams.Exponent = publicKeyData.GetByteArray("exp").Bytes;
         parameters = tempParams;
     }
     return retVal;
 }
    public override void HandleInit(Sfs2X.Entities.Data.ISFSObject obj)
    {
        bool consumed = false;

        if(obj.ContainsKey(statusDS)){
            statusRecp.ReceiveStatus(obj);
            consumed = true;
        }

        if (obj.ContainsKey(posDS)){
            posRecp.ReceiveResultant(obj, true);
            consumed = true;
        }
        //		else if (obj.ContainsKey(movDS)){
        //			posRecp.ReceiveMoveDirection(obj);
        //		}
        //		else if (obj.ContainsKey(animDS)){
        //			animRecp.ReceiveState(obj);
        //		}
        if(!consumed){
            Debug.LogError("Unhandled init");
        }
    }
    protected override void OnLogin(Sfs2X.Core.BaseEvent e)
    {
        base.OnLogin(e);

        _sfs.SendJoinRoomRequest(_sfs.RoomList[0]);

        //Debug.Log("Logged in successfully");
        //if (_sfs.GetRoomByName("Test") == null)
        //{
        //    var settings = new MMORoomSettings("Test");
        //    settings.DefaultAOI = new Vec3D(25f, 1f, 25f);
        //    settings.MapLimits = new MapLimits(new Vec3D(-100f, 1f, -100f), new Vec3D(100f, 1f, 100f));
        //    settings.MaxUsers = 100;
        //    settings.Extension = new RoomExtension("LoginExt", "LoginExtExtension.jar");

        //    //settings.ProximityListUpdateMillis = 50;
        //    _sfs.Send(new CreateRoomRequest(settings, true, null));
        //}
        //else
        //{
        //    // We either create the Game Room or join it if it exists already
        //    _sfs.Send(new JoinRoomRequest("Test"));
        //}
    }
Exemplo n.º 6
0
        private void HandleContinuePacket(Sfs2X.Util.ByteArray data)
        {
            int packetRemain = PendingPacket.Header.ExpectedLength - PendingPacket.Buffer.Length;
            if (packetRemain > data.Length)
            {//还有包
                PendingPacket.Buffer.WriteBytes(data.Bytes);
                NeedsMoreData = true;
            }
            else
            {
                PendingPacket.Buffer.WriteBytes(data.Bytes, 0, packetRemain);

                if (PendingPacket.Header.Compressed)
                {
                    PendingPacket.Buffer.Uncompress();
                }

                Sfs2X.Entities.Data.SFSObject obj = Sfs2X.Entities.Data.SFSObject.NewFromBinaryData(PendingPacket.Buffer);
                string dumpstr = obj.GetDump();
                Console.WriteLine(IsReq ? "req:" : "resp");
                Console.WriteLine(dumpstr);

                Writer.WriteLine(IsReq ?    "req:=========================="
                                        :   "resp:=========================");
                Writer.WriteLine(dumpstr);

                int dataRemain = data.Length - packetRemain;
                if (dataRemain == 0)
                    NeedsMoreData = false;
                else
                {
                    data = ResizeByteArray(data, (uint)packetRemain);
                    HandleNewPacket(data);
                }
            }
        }
Exemplo n.º 7
0
 public override void OnHandleMessage(Sfs2X.Entities.Data.ISFSObject data)
 {
     errorMessage = data.GetUtfString("error");
 }
 protected override void OnConnectionSuccess(Sfs2X.Core.BaseEvent e)
 {
 }
    protected override void OnRoomJoin(Sfs2X.Core.BaseEvent e)
    {
        base.OnRoomJoin(e);

        print("Room joined : " + _sfs.LastJoinedRoom.Name);
    }
Exemplo n.º 10
0
 public override void OnHandleMessage(Sfs2X.Entities.Data.ISFSObject data)
 {
 }
 public override void OnHandleMessage(Sfs2X.Entities.Data.ISFSObject data)
 {
     Debug.Log("Character created successfully, going back to character select");
 }
Exemplo n.º 12
0
 private Sfs2X.Util.ByteArray ResizeByteArray(Sfs2X.Util.ByteArray data, uint pos)
 {
     int len = data.Length - (int)pos;
     byte[] b = new byte[(uint)len];
     Array.ConstrainedCopy(data.Bytes, (int)pos, b, 0, len);
     return new Sfs2X.Util.ByteArray(b);
 }
Exemplo n.º 13
0
        private void HandleNewPacket(Sfs2X.Util.ByteArray data)
        {
            Byte headerByte = data.ReadByte();

            PendingPacket = new Sfs2X.Bitswarm.PendingPacket(Sfs2X.Core.PacketHeader.FromBinary(headerByte));

            int dataSize;
            if (PendingPacket.Header.BigSized)
            {
               dataSize = data.ReadInt();
            }
            else
            {
                dataSize = data.ReadUShort();
            }

            data = ResizeByteArray(data, (uint)data.Position);

            PendingPacket.Header.ExpectedLength = dataSize;

            HandleContinuePacket(data);
        }