public ClientResponse(ICommMessage message, IClientNode client) { Message = message; Clients = new List <IClientNode>() { client }; }
public MainWindow() { InitializeComponent(); txtUserName.Text = "User" + new Random().Next(10000); cbChatRooms.ItemsSource = _rooms; var builder = new ContainerBuilder(); //register core messages builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(EmptyMessage))) .Where(x => x.IsAssignableTo<Message>() && x != typeof(Message)) .As<Message>(); //register domain messages builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin))) .Where(x => x.IsAssignableTo<Message>() && x != typeof(Message)) .As<Message>(); //register domain service definitions and proxies builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin))) .Where(x => x.IsAssignableTo<NetProxy>() && x != typeof(NetProxy)) .As<NetProxy>(); builder.RegisterType<OperationDispatcher>().As<IOperationDispatcher>().SingleInstance(); builder.RegisterType<MessageFactory>().As<IMessageFactory>().SingleInstance(); //builder.Register(c => new PhotonNetClient("MouseChat")).As<INetProvider>().SingleInstance(); var netConf = new NetPeerConfiguration("ChatApp") { ConnectionTimeout = 10000, }; builder.Register(x => new LidgrenNetProvider(netConf)).As<INetProvider>().SingleInstance(); builder.RegisterType<ClientNode>().As<IClientNode>(); var container = builder.Build(); _node = container.Resolve<IClientNode>(); //start node thread and init network _node.Start(); btnJoin.IsEnabled = false; Closing += (sender, e) => _node.Stop(); }
public MainWindow() { InitializeComponent(); txtUserName.Text = "User" + new Random().Next(10000); cbChatRooms.ItemsSource = _rooms; var builder = new ContainerBuilder(); //register core messages builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(EmptyMessage))) .Where(x => x.IsAssignableTo <Message>() && x != typeof(Message)) .As <Message>(); //register domain messages builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin))) .Where(x => x.IsAssignableTo <Message>() && x != typeof(Message)) .As <Message>(); //register domain service definitions and proxies builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IChatLogin))) .Where(x => x.IsAssignableTo <NetProxy>() && x != typeof(NetProxy)) .As <NetProxy>(); builder.RegisterType <OperationDispatcher>().As <IOperationDispatcher>().SingleInstance(); builder.RegisterType <MessageFactory>().As <IMessageFactory>().SingleInstance(); //builder.Register(c => new PhotonNetClient("MouseChat")).As<INetProvider>().SingleInstance(); var netConf = new NetPeerConfiguration("ChatApp") { ConnectionTimeout = 10000, }; builder.Register(x => new LidgrenNetProvider(netConf)).As <INetProvider>().SingleInstance(); builder.RegisterType <ClientNode>().As <IClientNode>(); var container = builder.Build(); _node = container.Resolve <IClientNode>(); //start node thread and init network _node.Start(); btnJoin.IsEnabled = false; Closing += (sender, e) => _node.Stop(); }
private static void WakeUp() { idle = false; string libsPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).Replace("bin", "lib"); AppDomainSetup domainSetup = new AppDomainSetup { PrivateBinPath = libsPath, ApplicationBase = libsPath }; var nodeDomain = AppDomain.CreateDomain("Node", null, domainSetup); /*IClientNode*/ c = (IClientNode)nodeDomain.CreateInstanceAndUnwrap("Node", "Node.Client"); //c.OnGoingIdle += (object sender, EventArgs e) => AppDomain.Unload(nodeDomain); IPEndPoint[] hubEP = c.Login(startArgs); // If we get there, the node has decided to go idle. ListenHubWakeups(hubEP[1]); hubPort = hubEP[0].Port; idle = true; Console.WriteLine("unloading node..." + ((nodeDomain == null)? " node already null": "")); if (nodeDomain != null) { AppDomain.Unload(nodeDomain); } }
public static RawClientRequest BuildRawRequest <T>(T message, TodoMessageTypes payloadType, IClientNode client) { var messageStream = new MemoryStream(); Serializer.Serialize <T>(messageStream, message); var container = new MessageContainerProto() { Data = messageStream.ToArray(), PayloadType = (uint)payloadType }; var containerStream = new MemoryStream(); Serializer.Serialize <MessageContainerProto>(containerStream, container); return(new RawClientRequest(containerStream.ToArray(), client)); }
public RawClientRequest(byte[] rawRequest, IClientNode client) { RawRequest = rawRequest; Client = client; }
public ClientRequest(TMessage message, IClientNode client) { Message = message; Client = client; }
public ClientStatusChanged(IClientNode client, ClientStatusChangeType type) { Client = client; Type = type; }