internal static IProtocol Server(Lifetime lifetime, int?port = null) { var id = "TestServer"; var server = new SocketWire.Server(lifetime, SynchronousScheduler.Instance, new IPEndPoint(IPAddress.Loopback, port ?? 0), id); return(new Protocol(id, new Serializers(lifetime, null, null), new Identities(IdKind.Server), SynchronousScheduler.Instance, server, lifetime)); }
protected void Queue(Action action) { SingleThreadScheduler.RunOnSeparateThread(SocketLifetime, "Worker", scheduler => { var client = new SocketWire.Server(ModelLifetime, scheduler, new IPEndPoint(IPAddress.Loopback, Port), "DemoServer"); var serializers = new Serializers(); Protocol = new Protocol("Server", serializers, new Identities(IdKind.Server), scheduler, client, SocketLifetime); scheduler.Queue(action); }); }
private static void MainLifetime(string[] args, LifetimeDefinition lifetimeDefinition) { var lifetime = lifetimeDefinition.Lifetime; var reflectionSerializers = new ReflectionSerializersFacade(); var serializers = new Serializers(reflectionSerializers.Registrar); var scheduler = SingleThreadScheduler.RunOnSeparateThread(lifetime, "Scheduler"); Protocol protocol; SocketWire.Base wire; var isServer = args.Length == 0 ? Util.Fork(args) : args[0] == "server"; if (isServer) { Console.Title = "Server"; wire = new SocketWire.Server(lifetime, scheduler, ourIpEndPoint); protocol = new Protocol("Server", serializers, new Identities(IdKind.Server), scheduler, wire, lifetime); } else { Console.Title = "Client"; wire = new SocketWire.Client(lifetime, scheduler, ourIpEndPoint); protocol = new Protocol("Client", serializers, new Identities(IdKind.Client), scheduler, wire, lifetime); } scheduler.Queue(() => RunApplication(isServer, reflectionSerializers, lifetime, protocol)); wire.Connected.Change.Advise(lifetime, value => { if (value) { Console.Title += ": connected"; } else { lifetimeDefinition.Terminate(); } }); while (lifetime.IsAlive) { if (Console.KeyAvailable && OnChar != null) { scheduler.Queue(() => OnChar?.Invoke(Console.ReadKey(true).KeyChar)); } Thread.Sleep(100); } }
public RiderProtocolController(IScheduler mainThreadScheduler, Lifetime lifetime) { try { ourLogger.Verbose("Start ControllerTask..."); Wire = new SocketWire.Server(lifetime, mainThreadScheduler, null, "UnityServer"); ourLogger.Verbose($"Created SocketWire with port = {Wire.Port}"); } catch (Exception ex) { ourLogger.Error("RiderProtocolController.ctor. " + ex); } }
private void SetupModel(Lifetime lifetime, ISolution solution) { var scheduler = SingleThreadScheduler.RunOnSeparateThread(lifetime, Host); var server = new SocketWire.Server(lifetime, scheduler); Port = server.Port; var serializers = new Serializers(); var identities = new Identities(IdKind.Server); scheduler.Queue(() => { var protocol = new Protocol(Protocol, serializers, identities, scheduler, server, lifetime); var model = new DteProtocolModel(lifetime, protocol); RegisterCallbacks(model, solution); }); }
public RiderProtocolController(IScheduler mainThreadScheduler, Lifetime lifetime) { var logger = Log.GetLog <RiderProtocolController>(); try { logger.Log(LoggingLevel.VERBOSE, "Start ControllerTask..."); Wire = new SocketWire.Server(lifetime, mainThreadScheduler, null, "UnityServer", true); logger.Log(LoggingLevel.VERBOSE, $"Created SocketWire with port = {Wire.Port}"); InitializeProtocolJson(Wire.Port, logger); } catch (Exception ex) { logger.Error("RiderProtocolController.ctor. " + ex); } }