void Start() { _appStateBroker = AppStateBroker.Instance; _server = ORTCPMultiServer.Instance; _tcpMessageRecieved = Observable .FromEvent <ORTCPMultiServer.TCPServerMessageRecivedEvent, ORTCPEventParams> ( h => p => h(p), h => ORTCPMultiServer.Instance.OnTCPMessageRecived += h, h => ORTCPMultiServer.Instance.OnTCPMessageRecived -= h ); _tcpMessageRecieved .Subscribe(OnMessageRecived) .AddTo(gameObject); _appStateBroker .ComOutGoingStream .Subscribe(msg => { Debug.Log(msg); _server.SendAllClientsMessage(msg); GameManager.StatusMsgBackup = msg; }) .AddTo(gameObject); }
public static ORTCPClient CreateInstance(string name, TcpClient tcpClient, ORTCPMultiServer serverDelegate) // this is only used by the server { GameObject go = new GameObject(name); ORTCPClient client = go.AddComponent <ORTCPClient>(); client.SetTcpClient(tcpClient); client.serverDelegate = serverDelegate; client.verbose = false; return(client); }
private void Awake() { if (_instance != null && _instance != this) { Destroy(this.gameObject); } else { _instance = this; } }
public static ORTCPClient CreateInstance(string name, TcpClient tcpClient, ORTCPMultiServer serverDelegate, int port) // this is only used by the server { ORTCPClient client = new ORTCPClient(); client.port = port; client.SetTcpClient(tcpClient); client.serverDelegate = serverDelegate; client.verbose = false; client.Start(); return(client); }
private void Awake() { if (_instance != null && _instance != this) { Destroy(this.gameObject); } else { _instance = this; } //debug binding Observable.EveryUpdate() .Select(_ => GameManager.TargetObject_External) .DistinctUntilChanged() .Subscribe(_ => verbose = (GameManager.TargetObject_External & TargetObject.TCP) == TargetObject.TCP) .AddTo(gameObject); _listenning = false; _newConnections = new Queue <NewConnection>(); _clients = new Dictionary <int, ORTCPClient>(); StartListening(); Observable .EveryUpdate() .Where(_ => _newConnections.Count > 0) .Subscribe(_ => { //Debug.Log(Thread.CurrentThread.ManagedThreadId); NewConnection newConnection = _newConnections.Dequeue(); ORTCPClient client = ORTCPClient.CreateInstance("ORMultiServerClient", newConnection.tcpClient, this); int clientID = SaveClient(client); ORTCPEventParams eventParams = new ORTCPEventParams(); eventParams.eventType = ORTCPEventType.Connected; eventParams.client = client; eventParams.clientID = clientID; eventParams.socket = newConnection.tcpClient; if (verbose) { print("[TCPServer] New client connected"); } }); }
static void Main(string[] args) { regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); regKey.SetValue("TestApplication", Assembly.GetExecutingAssembly().Location.ToString()); StartTargetApplication(); Port = GetPort(); Server = new ORTCPMultiServer(); Server.Start(Port); _tcpMessageRecieved = Observable .FromEvent <ORTCPMultiServer.TCPServerMessageRecivedEvent, ORTCPEventParams> (h => (p) => h(p), h => Server.OnTCPMessageRecived += h, h => Server.OnTCPMessageRecived -= h); _tcpMessageRecieved.Subscribe(DoCommnad); Console.Read(); }
public ORTCPMultiServer() { _instance = this; }