public virtual void Connect(ConnectionConfig config) { if (config is ReceptionistConfig) { if (UseDynamicId) { WorkerId = GenerateDynamicWorkerId(); } Connection = ConnectionUtility.ConnectToSpatial((ReceptionistConfig)config, GetWorkerType, WorkerId); } else if (config is LocatorConfig) { Connection = ConnectionUtility.LocatorConnectToSpatial((LocatorConfig)config, GetWorkerType); } else { throw new InvalidConfigurationException($"Invalid connection config was provided: '{config}' Only" + "ReceptionistConfig and LocatorConfig are supported."); } Application.quitting += () => { ConnectionUtility.Disconnect(Connection); Connection = null; }; View.Connect(); }
public void Dispose() { EntityMapping.Clear(); World?.Dispose(); World = null; OnDisconnect?.Invoke(this); ConnectionUtility.Disconnect(Connection); Connection?.Dispose(); Connection = null; }