public static void AddFrame(WsFrame frame, CommPacketDirection direction, ConnectionInstance connectionInstance)
        {
            if (instance == null || !instance.Data.CaptureEnabled)
            {
                return;
            }

            try
            {
                var parentPacket = new CommPacket
                {
                    Data         = frame.HeaderBytes,
                    Direction    = direction,
                    Id           = Guid.NewGuid(),
                    Instance     = connectionInstance,
                    ParentPacket = null,
                    Header       = "Websocket Frame",
                };

                foreach (var curMessage in frame.Messages)
                {
                    var headerPacket = new CommPacket
                    {
                        Data         = BitConverter.GetBytes((ushort)(curMessage.Buffer.Length + 1)).Concat(new byte[] { curMessage.ApiId ?? 0 }).ToArray(),
                        Direction    = direction,
                        Id           = Guid.NewGuid(),
                        Instance     = connectionInstance,
                        ParentPacket = parentPacket,
                        Header       = $"Websocket Message[0x{curMessage.ApiId ?? 0:X2}]",
                    };

                    var payloadPacket = new CommPacket
                    {
                        Data         = curMessage.Buffer,
                        Direction    = direction,
                        Id           = Guid.NewGuid(),
                        Instance     = connectionInstance,
                        ParentPacket = parentPacket,
                        Header       = $"Websocket Payload",
                    };

                    headerPacket.ChildPackets.Add(payloadPacket);
                    parentPacket.ChildPackets.Add(headerPacket);
                }
                ;

                instance.Data.SendBytesToUi(connectionInstance, parentPacket);
            }
            catch (Exception ex) {
                Log.Error(ex, "Error in AddFrame");
            }
        }
        public static void SendBytesToUi(ConnectionInstance connectionInstance, CommPacket packet)
        {
            if (instance == null || !instance.Data.CaptureEnabled)
            {
                return;
            }

            try
            {
                instance.Data.SendBytesToUi(connectionInstance, packet);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error in SendBytesToUi");
            }
        }
        public static void WriteBytes(byte[] buffer, int count, CommPacketDirection direction, ConnectionInstance connectionInstance)
        {
            if (instance == null || !instance.Data.CaptureEnabled)
            {
                return;
            }

            try
            {
                byte[] saveData = new byte[count];
                Buffer.BlockCopy(buffer, 0, saveData, 0, count);

                var length             = saveData.Search(saveData.Length, new byte[] { 13, 10 });
                var dataStringSegments = Encoding.UTF8.GetString(saveData, 0, length).Split(' ');

                string header = "HTTP Data";

                if (dataStringSegments[2].StartsWith("HTTP"))
                {
                    header = $"{dataStringSegments[0]} {dataStringSegments[1]}";
                }
                else if (dataStringSegments[0].StartsWith("HTTP"))
                {
                    var desc = dataStringSegments[2];

                    for (int i = 3; i < dataStringSegments.Length; ++i)
                    {
                        desc += $" {dataStringSegments[i]}";
                    }

                    header = $"{dataStringSegments[1]} {desc}";
                }

                instance.Data.SendBytesToUi(connectionInstance, new CommPacket
                {
                    Data         = saveData,
                    Direction    = direction,
                    Id           = Guid.NewGuid(),
                    Instance     = connectionInstance,
                    ParentPacket = null,
                    Header       = header,
                });
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error in WriteBytes");
            }
        }