// Init rabbit from first launch not on editor! // ReSharper disable once InconsistentNaming // ReSharper disable once UnusedMember.Local private void ReadStartUpSettings() { try { string[] args = Environment.GetCommandLineArgs(); string amqpBase64 = args[1]; string amqpJson = Base64Decode(amqpBase64); _logger.Info(amqpJson); //currently it's somewhat the only way to debug client Rabbitmq rabbitmq = amqpJson.JsonDeserialize <Rabbitmq>(); AMQPClient.Init(rabbitmq); LoaderAdapter.Init(new ApiLoader()); LogManager.GetCurrentClassLogger().Info("RabbitMQ init settings = " + amqpJson); } catch (Exception e) { try { ReadStartUpFile(); } catch (Exception exception) { string message = "Cant read AMQP settings! Trying to get file params"; LogManager.GetCurrentClassLogger().Fatal(message + " stackTrace = " + e.StackTrace); LauncherErrorManager.Instance.ShowFatal(message, exception.StackTrace); } } }
public static void SpawnSceneObjects(int newSceneId, int oldSceneId) { if (newSceneId == oldSceneId) { _logger.Info($"Objects for scene {newSceneId} already loaded"); return; } _logger.Info($"Loading objects for scene {newSceneId}"); ParentManager.Instance.ParentCommand = ParentCommand.None; if (oldSceneId != 0 && LoaderAdapter.LoaderType == typeof(ApiLoader)) { AMQPClient.UnSubscribeLogicChange(oldSceneId); AMQPClient.UnSubscribeCompilationError(oldSceneId); AMQPClient.UnSubscribeObjectChange(oldSceneId); } GameStateData.ClearObjects(); ProjectData.ObjectsAreChanged = false; Data.ServerData.Scene location = ProjectData.ProjectStructure.Scenes.GetProjectScene(newSceneId); LogicInstance logicInstance = new LogicInstance(newSceneId); GameStateData.RefreshLogic(logicInstance, location.AssemblyBytes); CreateSpawnEntities(location.SceneObjects, newSceneId); if (LoaderAdapter.LoaderType == typeof(ApiLoader)) { AMQPClient.SubscribeLogicChange(newSceneId); AMQPClient.SubscribeCompilationError(newSceneId); AMQPClient.SubscribeObjectChange(ProjectData.ProjectId, newSceneId); } }
public async Task<bool> ConnectAsync(IotHubSettings settings = null) { bool connected = false; int retryCount = 0; await DisconnectAsync(); while (retryCount < 5 && !connected) { System.Diagnostics.Debug.WriteLine("Try to connect.. Attempts:" + retryCount); _amqpClient = new AMQPClient(); connected = await _amqpClient.ConnectAsync(settings); retryCount++; } if (connected) { _amqpClient.NewMessageReceived += OnNewMessageReceived; System.Diagnostics.Debug.WriteLine("Connection successful"); return true; } else { System.Diagnostics.Debug.WriteLine("Connection failed"); return false; } }
private void ShowLogicExceptionError(int errorCode, string errorMessage, Exception exception) { var logicException = new LogicException(this, exception); LogManager.GetCurrentClassLogger().Error($"{errorMessage} {logicException.GetStackFrameString()}"); VRErrorManager.Instance.Show(ErrorHelper.GetErrorDescByCode(errorCode)); AMQPClient.SendRuntimeErrorMessage(logicException); }
private void Start() { PlayerNameInputField inputField = FindObjectOfType <PlayerNameInputField>(); string userName = Environment.UserName; inputField.SetPlayerName(userName); LoaderAnime.gameObject.transform.position = new Vector3(0, (float)Screen.height / 1000 - 1, 0); LanguageManager.SetDontDestroyOnLoad(); Contexts.sharedInstance.game.DestroyAllEntities(); #if !UNITY_EDITOR ReadStartUpSettings(); #else Settings.ReadTestSettings(); Rabbitmq amqmSettings = new Rabbitmq { host = Settings.Instance().RabbitMqHost + ":" + Settings.Instance().RabbitMqPort, login = Settings.Instance().RabbitMqUserName, password = Settings.Instance().RabbitMqPass, key = "debug" }; AMQPClient.Init(amqmSettings); #endif #if UNITY_EDITOR if (LoadTarFile) { Settings.CreateStorageSettings(TarFilePath); StartLoadFile(); return; } #endif LoaderSystems loaderSystems = new LoaderSystems(Contexts.sharedInstance); loaderSystems.Initialize(); ProjectDataListener.OnUpdate = () => loaderSystems.Execute(); if (LoaderAdapter.LoaderType != typeof(ApiLoader)) { return; } try { AMQPClient.ReadLaunchArgs(); } catch (Exception e) { LauncherErrorManager.Instance.ShowFatalErrorKey( ErrorHelper.GetErrorKeyByCode(Varwin.Errors.ErrorCode.RabbitNoArgsError), e.StackTrace); _logger.Fatal("Can not read launch args in rabbitMq"); } }
private void OnApplicationQuit() { Debug.Log("Application ending after " + Time.time + " seconds"); AMQPClient.CloseConnection(); }
public async Task DisconnectAsync() { if (_amqpClient != null) { await _amqpClient.DisconnectAsync(); _amqpClient.NewMessageReceived -= OnNewMessageReceived; _amqpClient = null; } }
private void SendBlocks() { _blocks.AddRange(_forcedBlocks); AMQPClient.SendRuntimeBlocks(ProjectData.SceneId, _blocks.ToArray()); _forcedBlocks.Clear(); }