/// <summary>
        /// Sends events to server.
        /// </summary>
        public void DoWork()
        {
            if (PlayFabSettings.staticPlayer.IsClientLoggedIn())
            {
                // The events which are sent without login will only be in this queue intially.
                // Once login is done, the count should always be 0.
                while (eventsPending.Count > 0)
                {
                    if (entityKey.Id == null)
                    {
                        return;
                    }
                    EventsModels.EventContents eventInfo = eventsPending.Dequeue();
                    eventInfo.Entity = entityKey;
                    eventsRequests.Enqueue(eventInfo);
                }

                long currentTime = GetCurrentTimeInMilliseconds();

                if (currentTime > lastErrorTimeInMillisecond + (retryCount * 1000))
                {
                    if (eventsRequests.Count > 0)
                    {
                        EventsModels.WriteEventsRequest request = new EventsModels.WriteEventsRequest();
                        request.Events = new List <EventsModels.EventContents>();

                        while ((eventsRequests.Count > 0) && (request.Events.Count < maxBatchSizeInEvents))
                        {
                            EventsModels.EventContents eventInfo = eventsRequests.Dequeue();
                            request.Events.Add(eventInfo);
                        }

                        if (request.Events.Count > 0)
                        {
#if !UNITY_EDITOR
                            eventApi.WriteTelemetryEvents(request, EventSentSuccessfulCallback, EventSentErrorCallback);
#endif
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Sends events to server.
        /// </summary>
        public void Send()
        {
            if ((PlayFabClientAPI.IsClientLoggedIn()) && (isSending == false))
            {
                isSending = true;

                EventsModels.WriteEventsRequest request = new EventsModels.WriteEventsRequest();
                request.Events = new List <EventsModels.EventContents>();

                while ((eventsRequests.Count > 0) && (request.Events.Count < maxBatchSizeInEvents))
                {
                    EventsModels.EventContents eventInfo = eventsRequests.Dequeue();
                    request.Events.Add(eventInfo);
                }

                if (request.Events.Count > 0)
                {
                    PlayFabEventsAPI.WriteEvents(request, EventSentSuccessfulCallback, EventSentErrorCallback);
                }

                isSending = false;
            }
        }
Пример #3
0
        /// <summary>
        /// Sends events to server.
        /// </summary>
        public void Send()
        {
            if ((ClientAPI.IsClientLoggedIn()) && (isSending == false))
            {
                isSending = true;

                EventsModels.WriteEventsRequest request = new EventsModels.WriteEventsRequest();
                request.Events = new List <EventsModels.EventContents>();

                while ((eventsRequests.Count > 0) && (request.Events.Count < maxBatchSizeInEvents))
                {
                    EventsModels.EventContents eventInfo = eventsRequests.Dequeue();
                    request.Events.Add(eventInfo);
                }

                if (request.Events.Count > 0)
                {
                    EventsAPI.WriteEvents(request.Events).FireForgetLog("Failed to send session data.");
                }

                isSending = false;
            }
        }
Пример #4
0
        public override void Tick(UUnitTestContext testContext)
        {
            if (pubSub != null && pubSub.State == PersistentSocketState.Opened && DateTime.Now > nextWrite)
            {
                UpdateNextWriteTime();
                EventsModels.WriteEventsRequest req = new EventsModels.WriteEventsRequest();

                EventsModels.EventContents ec = new EventsModels.EventContents();

                ec.Entity      = new EventsModels.EntityKey();
                ec.Entity.Id   = _MyEntityKey.Id;
                ec.Entity.Type = _MyEntityKey.Type;
                ec.Name        = testName;

                ec.EventNamespace = ns;
                ec.PayloadJSON    = $"{{\"CurrentTime\" : \"{DateTime.Now}\"}}";

                req.Events = new List <EventsModels.EventContents>();
                req.Events.Add(ec);

                PlayFabEventsAPI.WriteEvents(req, null, null);
            }
        }
Пример #5
0
        /// <summary>
        /// Sends events to server.
        /// </summary>
        public void Send()
        {
            if (PlayFabSettings.staticPlayer.IsClientLoggedIn() && isSending == false)
            {
                isSending = true;

                var request = new EventsModels.WriteEventsRequest();
                request.Events = new List <EventsModels.EventContents>();

                while (eventsRequests.Count > 0 && request.Events.Count < maxBatchSizeInEvents)
                {
                    var eventInfo = eventsRequests.Dequeue();
                    request.Events.Add(eventInfo);
                }

                if (request.Events.Count > 0)
                {
                    eventApi.WriteEvents(request, EventSentSuccessfulCallback, EventSentErrorCallback);
                }

                isSending = false;
            }
        }