예제 #1
0
        public void ClientSent(byte[] data, int offset)
        {
            //            Console.Out.WriteLine($"KeepAliveHandler.ClientSent: {Utility.ByteArrayToHexString(data, offset)}.");
            Packets.NaiveParsePacket <FFXIVKeepAliveData>(data, offset, out var pkt);
            //            Console.Out.WriteLine($"KeepAliveHandler.ClientSent: ID={pkt.Id}, Timestamp={pkt.Timestamp}.");

            OnClientSent?.Invoke(pkt);
            _currentId         = pkt.Id;
            _lastKeepAliveSent = DateTime.UtcNow;
        }
예제 #2
0
        public void ClientSent(byte[] data, int offset)
        {
            //            Console.Out.WriteLine($"IPCHandler.ClientSent: {Utility.ByteArrayToHexString(data, offset)}.");
            var headerLen = Packets.ParseIPCHeader(data, offset, out var pkt);

            //            Console.Out.WriteLine($"FFXIVIpcHeader.Type = 0x{pkt.Type:X4}.");

            OnClientSent?.Invoke(pkt, data, offset + headerLen);
            if (pkt.Type == PingOpCode.Client)
            {
                HandleClientPing(data, offset + headerLen);
            }
        }