public void GetConnectionService_returns_alpha_locator_if_pit_and_login_token_are_present() { var args = GetBaseArgs(); var service = new CommandLineConnectionFlowInitializer(args).GetConnectionService(); Assert.AreEqual(ConnectionService.Locator, service); }
private async void Start() { var connParams = CreateConnectionParameters(WorkerType); var builder = new SpatialOSConnectionHandlerBuilder() .SetConnectionParameters(connParams); if (!Application.isEditor) { var initializer = new CommandLineConnectionFlowInitializer(); switch (initializer.GetConnectionService()) { case ConnectionService.Receptionist: builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerType), initializer)); break; case ConnectionService.Locator: builder.SetConnectionFlow(new LocatorFlow(initializer)); break; default: throw new ArgumentOutOfRangeException(); } } else { builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerType))); } await Connect(builder, new ForwardingDispatcher()).ConfigureAwait(false); }
protected virtual IConnectionHandlerBuilder GetConnectionHandlerBuilder() { IConnectionFlow connectionFlow; var connectionParams = CreateConnectionParameters(WorkerUtils.UnityClient); var workerId = CreateNewWorkerId(WorkerUtils.UnityClient); if (Application.isEditor) { connectionFlow = new ReceptionistFlow(workerId); } else { var initializer = new CommandLineConnectionFlowInitializer(); switch (initializer.GetConnectionService()) { case ConnectionService.Receptionist: connectionFlow = new ReceptionistFlow(workerId, initializer); break; case ConnectionService.Locator: connectionParams.Network.UseExternalIp = true; connectionFlow = new LocatorFlow(initializer); break; default: throw new ArgumentOutOfRangeException(); } } return(new SpatialOSConnectionHandlerBuilder() .SetConnectionFlow(connectionFlow) .SetConnectionParameters(connectionParams)); }
public void Initialize_alpha_locator_flow_correctly() { var initializer = new CommandLineConnectionFlowInitializer(GetBaseArgs()); var flow = new LocatorFlow(initializer); Assert.AreEqual(GetBaseArgs()[RuntimeConfigNames.LocatorHost], flow.LocatorHost); Assert.AreEqual(GetBaseArgs()[RuntimeConfigNames.LoginToken], flow.LoginToken); Assert.AreEqual(GetBaseArgs()[RuntimeConfigNames.PlayerIdentityToken], flow.PlayerIdentityToken); }
public void Initialize_receptionist_ignores_params_that_arent_there() { var initializer = new CommandLineConnectionFlowInitializer(new Dictionary <string, string>()); var flow = new ReceptionistFlow("a_worker_id", initializer); Assert.AreEqual(RuntimeConfigDefaults.ReceptionistHost, flow.ReceptionistHost); Assert.AreEqual(RuntimeConfigDefaults.ReceptionistPort, flow.ReceptionistPort); Assert.AreEqual("a_worker_id", flow.WorkerId); }
public void Initialize_receptionist_flow_correctly() { var initializer = new CommandLineConnectionFlowInitializer(GetBaseArgs()); var flow = new ReceptionistFlow("a_worker_id", initializer); Assert.AreEqual(GetBaseArgs()[RuntimeConfigNames.ReceptionistHost], flow.ReceptionistHost); Assert.AreEqual(1337, flow.ReceptionistPort); Assert.AreEqual(GetBaseArgs()[RuntimeConfigNames.WorkerId], flow.WorkerId); }
protected override IConnectionHandlerBuilder GetConnectionHandlerBuilder() { var connectionParams = new ConnectionParameters { DefaultComponentVtable = new ComponentVtable(), WorkerType = WorkerUtils.UnityClient }; var builder = new SpatialOSConnectionHandlerBuilder() .SetConnectionParameters(connectionParams); if (UseSessionFlow) { connectionParams.Network.UseExternalIp = true; builder.SetConnectionFlow(new ChosenDeploymentAlphaLocatorFlow(deployment, new SessionConnectionFlowInitializer(new CommandLineConnectionFlowInitializer()))); } else if (Application.isEditor) { builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerUtils.UnityClient))); } else { var initializer = new CommandLineConnectionFlowInitializer(); switch (initializer.GetConnectionService()) { case ConnectionService.Receptionist: var rec = new ReceptionistFlow(CreateNewWorkerId(WorkerUtils.UnityClient), initializer); connectionParams.Network.UseExternalIp = true; rec.ReceptionistHost = "192.168.20.238"; builder.SetConnectionFlow(rec); break; case ConnectionService.Locator: connectionParams.Network.UseExternalIp = true; var loc = new LocatorFlow(initializer); builder.SetConnectionFlow(loc); break; case ConnectionService.AlphaLocator: connectionParams.Network.UseExternalIp = true; builder.SetConnectionFlow(new AlphaLocatorFlow(initializer)); break; default: throw new ArgumentOutOfRangeException(); } } return(builder); }
public void Initialize_locator_sets_dev_auth_flow_correctly() { { var initializer = new CommandLineConnectionFlowInitializer(GetBaseArgs()); var flow = new LocatorFlow(initializer); Assert.IsFalse(flow.UseDevAuthFlow); } { var args = GetBaseArgs(); args.Remove(RuntimeConfigNames.PlayerIdentityToken); args.Remove(RuntimeConfigNames.LoginToken); var initializer = new CommandLineConnectionFlowInitializer(args); var flow = new LocatorFlow(initializer); Assert.IsTrue(flow.UseDevAuthFlow); } }
private async void Start() { Application.targetFrameRate = 60; var connParams = CreateConnectionParameters(WorkerUtils.UnityClient); connParams.Network.UseExternalIp = UseExternalIp; var builder = new SpatialOSConnectionHandlerBuilder() .SetConnectionParameters(connParams); if (!Application.isEditor) { var initializer = new CommandLineConnectionFlowInitializer(); switch (initializer.GetConnectionService()) { case ConnectionService.Receptionist: builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerUtils.UnityClient), initializer)); break; case ConnectionService.Locator: builder.SetConnectionFlow(new LocatorFlow(initializer)); break; default: throw new ArgumentOutOfRangeException(); } } else { builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerUtils.UnityClient))); } await Connect(builder, new ForwardingDispatcher()); if (level == null) { return; } levelInstance = Instantiate(level, transform.position, transform.rotation); }
private async void Start() { Application.targetFrameRate = 60; var connParams = CreateConnectionParameters(WorkerUtils.UnityClient); connParams.Network.UseExternalIp = UseExternalIp; connParams.Network.ConnectionType = NetworkConnectionType.RakNet; var builder = new SpatialOSConnectionHandlerBuilder() .SetConnectionParameters(connParams); if (!Application.isEditor) { var initializer = new CommandLineConnectionFlowInitializer(); switch (initializer.GetConnectionService()) { case ConnectionService.Receptionist: builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerUtils.UnityClient), initializer)); break; case ConnectionService.Locator: builder.SetConnectionFlow(new LocatorFlow(initializer)); break; case ConnectionService.AlphaLocator: builder.SetConnectionFlow(new AlphaLocatorFlow(initializer)); break; default: throw new ArgumentOutOfRangeException(); } } else { builder.SetConnectionFlow(new ReceptionistFlow(CreateNewWorkerId(WorkerUtils.UnityClient))); } await Connect(builder, new ForwardingDispatcher()).ConfigureAwait(false); }
public void GetConnectionService_falls_back_to_receptionist() { var service = new CommandLineConnectionFlowInitializer(new Dictionary <string, string>()).GetConnectionService(); Assert.AreEqual(ConnectionService.Receptionist, service); }