Пример #1
0
        void BeginListeningServerEvents()
        {
#if UNITY_WEBGL && !UNITY_EDITOR
            if (esGL != null)
            {
                return;
            }
            string url = this.ReferenceUrl;
            if (FirebaseAuth.Instance.IsSignedIn)
            {
                FirebaseAuth.Instance.GetAccessToken((accessToken) => {
                    url  = url + "?auth=" + accessToken;
                    esGL = new FirebaseDatabase.FirebaseEventSourceWebGL(url, true, null,
                                                                         OnEventSourceMessageReceived, OnEventSourceError);
                });
            }
            else
            {
                esGL = new FirebaseDatabase.FirebaseEventSourceWebGL(url, false, null,
                                                                     OnEventSourceMessageReceived, OnEventSourceError);
            }
#else
            if (webReq != null)
            {
                return;
            }
            string url = this.ReferenceUrl;

            Action sendRequest = () => {
                webReq = new UnityWebRequest(url);
                webReq.SetRequestHeader("Accept", "text/event-stream");
                webReq.SetRequestHeader("Cache-Control", "no-cache");
                FirebaseServerEventsDownloadHandler downloadHandler = new FirebaseServerEventsDownloadHandler();
                downloadHandler.DataReceived          += OnDataReceived;
                webReq.downloadHandler                 = downloadHandler;
                webReq.disposeDownloadHandlerOnDispose = true;
                UnityWebRequestAsyncOperation webReqAO = webReq.SendWebRequest();
                webReqAO.completed += ((ao) => OnStopListening(webReqAO));
            };

            if (FirebaseAuth.Instance.IsSignedIn)
            {
                FirebaseAuth.Instance.GetAccessToken(accessToken => {
                    url = url + "?auth=" + accessToken;
                    sendRequest();
                });
            }
            else
            {
                sendRequest();
            }
#endif
        }
Пример #2
0
        void DisposedUnityWebRequestIfNoReferences()
        {
            if (valueChangedRefCount == 0 &&
                childAddedRefCount == 0 &&
                childChangedRefCount == 0 &&
                childMovedRefCount == 0 &&
                childRemovedRefCount == 0)
            {
#if UNITY_WEBGL
                if (esGL != null)
                {
                    esGL.Close();
                    esGL = null;
                }
#else
                if (webReq != null)
                {
                    webReq.Dispose();
                    webReq = null;
                }
#endif
            }
        }