/// <summary> /// On Execute event /// </summary> public override void Execute() { // Regiter basic networck events NetworkServer.RegisterHandler(MsgType.Connect, msg => { ServerConnectedSignal.Dispatch(true); }); NetworkServer.RegisterHandler(MsgType.Disconnect, msg => { DisconnectSignal.Dispatch(true); }); NetworkServer.RegisterHandler(MsgType.Error, msg => { var error = msg.ReadMessage <ErrorMessage>(); ServerErrorSignal.Dispatch(error.ToString()); }); }
/// <summary> /// On register /// </summary> public override void OnRegister() { ServerConnectedSignal.AddListener(success => { View.ChangeStatus(success ? "Connected" : "Connected Error!"); }); DisconnectSignal.AddListener(success => { View.ChangeStatus(success ? "Disconnected" : "Disconnected Error!"); }); ServerErrorSignal.AddListener(View.OnGameServerError); }
private void listen() { var buffer = new byte[2048]; while (NetworkStream != null) { int bylesLength = 0; try { bylesLength = NetworkStream.Read(buffer, 0, 4); } catch (IOException) { continue; } catch (ObjectDisposedException) { continue; } if (bylesLength == 0) { DisconnectSignal.Invoke(this); break; } var length = BitConverter.ToInt32(buffer, 0); NetworkStream.Read(buffer, 0, length); using (var memStream = new MemoryStream(buffer)) using (var binaryStream = new BinaryReader(memStream)) { var name = Encoding.ASCII.GetString(binaryStream.ReadBytes(binaryStream.ReadInt32())); var data = binaryStream.ReadBytes(binaryStream.ReadInt32()); Receiver.Receive(name, data, CustomData); } } }
private void ProcessInput(InputType type) { switch (type) { case InputType.Connect: LogMessage("Trying to connect..."); ConnectSignal.Dispatch(); break; case InputType.Disconnect: LogMessage("Trying to disconnect..."); DisconnectSignal.Dispatch(); break; case InputType.SendMessage: TrySendMessage(); break; case InputType.ClearLog: ClearLog(); break; } }