Exemple #1
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);
            }
        }
Exemple #2
0
 private void OnSocketError(SocketIOEvent e)
 {
     L.D("[SocketIO::" + _socket?.GetHashCode() + "] !!!! Error received: " + e?.name + " DATA: " + e?.data + " ");
     HandleConnectionFailure(true);
 }