Exemple #1
0
        private void ExecuteThread()
        {
            _socket.ExecuteThread();
            //Reconnect on failure.
            if (_connectionAborted && _reconnectionAttempts <= RECONNECTION_ATTEMPTS)
            {
                L.E("SocketIO: Connection Aborted!");
                _reconnectionAttempts++;
                _connectionAborted = false;
                //Must close the Socket before we try to connect again.
                try
                {
                    _socket.ClearHandlers();
                    _socket.PrepareClose();
                    _socket.Close();
                }
                catch (Exception e)
                {
                    L.Ex(e);
                }

                _socket = null;
                L.D("SocketIO: Attempt #" + _reconnectionAttempts + " to reconnect to Machinations.");
                ConnectToMachinations(3);
            }
        }
Exemple #2
0
        /// <summary>
        /// Initializes the Socket IO component.
        /// <param name="socketURL">The URL where the Machinations API resides.</param>
        /// <param name="userKey">User Key (API key) to use when connecting to the back-end.</param>
        /// <param name="diagramToken">Diagram Token to make requests to.</param>
        /// </summary>
        public void InitSocket(string socketURL = "", string userKey = "", string diagramToken = "")
        {
            //Apply new URL if needed.
            if (socketURL != "")
            {
                _socketURL = socketURL;
            }
            if (userKey != "")
            {
                _userKey = userKey;
            }
            if (diagramToken != "")
            {
                _diagramToken = diagramToken;
            }
            //Close socket.
            if (_socket != null)
            {
                _socket.PrepareClose();
                _socket.Close();
                _socket = null;
            }

            _socket             = new SocketIOGlobal();
            _socket.autoConnect = false;
            L.D("Instantiated SocketIO with Hash: " + _socket.GetHashCode() + " for URL: " + _socketURL);
            _socket.url = _socketURL;
            SocketIOComponent.MaxRetryCountForConnect = 1;

            //Setup socket.
            _socket.SetUserKey(_userKey);
            try
            {
                _socket.CreateSocket();
            }
            catch (Exception ex)
            {
                L.Ex(ex);
            }

            _socket.On(SyncMsgs.RECEIVE_AUTH_SUCCESS, OnAuthSuccess);
            _socket.On(SyncMsgs.RECEIVE_AUTH_DENY, OnAuthDeny);
            _socket.On(SyncMsgs.RECEIVE_OPEN, OnSocketOpen);
            _socket.On(SyncMsgs.RECEIVE_OPEN_START, OnSocketOpenStart);
            _socket.On(SyncMsgs.RECEIVE_GAME_INIT, OnGameInitResponse);
            _socket.On(SyncMsgs.RECEIVE_DIAGRAM_ELEMENTS_UPDATED, OnDiagramElementsUpdated);
            _socket.On(SyncMsgs.RECEIVE_ERROR, OnSocketError);
            _socket.On(SyncMsgs.RECEIVE_API_ERROR, OnSocketError);
            _socket.On(SyncMsgs.RECEIVE_CLOSE, OnSocketClose);
            _socket.On(SyncMsgs.RECEIVE_GAME_UPDATE_DIAGRAM_ELEMENTS, OnGameUpdateDiagramElementsRequest);
            try
            {
                L.D("SocketIO: Connect Start.");
                _socket.Connect();
                L.D("SocketIO: Connect End.");
            }
            catch (Exception ex)
            {
                L.Ex(ex);
            }
        }