/// <summary> /// Should be executed when bytes are recieved from the Server. You have to call it manually. /// </summary> /// <param name="bytes">Data recieved</param> public void OnBytesRecieved(byte[] bytes) { KNetUtils.PacketType packetType; KNetUtils.PacketDataType dataType; short senderId; KNetUtils.DeconstructPacket(ref bytes, out packetType, out dataType, out senderId); MemoryStream ms = new MemoryStream(bytes); BinaryFormatter bf = new BinaryFormatter(); //KNetUtils.RecievePacket(packetType) switch (packetType) { case KNetUtils.PacketType.welcome: RecieveWelcomePacket(bytes); break; case KNetUtils.PacketType.bufferedObject: RecieveBufferedObject((KNetSerializedField)bf.Deserialize(ms)); break; case KNetUtils.PacketType.rpc: KNetRpc rpc = (KNetRpc) new KNetRpc().KNetDeserialize(bytes); rpc.Execute(); break; } }
/// <summary> /// Should be executed when bytes are recieved from any client. You have to call it manually. /// </summary> /// <param name="bytes">Data recieved</param> protected virtual void OnBytesRecieved(byte[] bytes) { KNetUtils.DeconstructPacket(ref bytes, out KNetUtils.PacketType packetType, out KNetUtils.PacketDataType dataType, out short senderId); //KNetUtils.RecievePacket(packetType) switch (packetType) { case KNetUtils.PacketType.rpc: KNetRpc rpc = (KNetRpc) new KNetRpc().KNetDeserialize(bytes); rpc.Execute(); break; } }