public async Task AcceptEventAsync(Action <string> callback = null)
        {
            await simpleListener.AcceptClientsAsync(eventData =>
            {
                try
                {
                    JObject eventObj = JObject.Parse(eventData);

                    eventObj.Add("event_id", Guid.NewGuid().ToString("N"));

                    var eventKeyValue = eventObj[eventKeyFieldName].Value <string>();

                    bool isUpdated = cache.TrySetValue(eventKeyValue, (cache, value) =>
                    {
                        List <object> objList = value as List <object>;

                        objList.Add(eventObj);

                        return(true);
                    });

                    if (callback != null)
                    {
                        Task.Run(() => callback(eventData));
                    }
                    //eventCallback?.Invoke(eventData);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            });
        }