Ejemplo n.º 1
0
        static void Main()
        {
            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);


            var hub = MessageHub.StartNew();
            var udp = new ArdNetServerUdpConfig("DDRTwistNShout", 7348);
            var tcp = new ArdNetServerTcpConfig(7348)
            {
                HeartbeatConfig =
                {
                    HeartbeatInterval            = TimeSpan.FromMilliseconds(1000),
                    ForceStrictHeartbeat         = true,
                    RespondToHeartbeats          = false,
                    HeartbeatToleranceMultiplier = 0
                }
            };
            var config = new ArdNetServerConfig(IPTools.GetLocalIP(), udp, tcp);

            using (var gamepadPort = new SerialPort("COM15", 921600))
            {
                gamepadPort.Open();
                using (ArdNetServer ardServer = ArdNetServer.StartNew(config, hub))
                {
                    Application.Run(new Form1(ardServer, gamepadPort));
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get new fully configured ardnet server
        /// </summary>
        /// <param name="MsgHub"></param>
        /// <param name="PingRateMills"></param>
        /// <param name="ServerPort"></param>
        /// <returns></returns>
        public static IArdNetServer GetArdServer(MessageHub MsgHub, int PingRateMills = 250, int ServerPort = 0)
        {
            var appID  = $"ArdNet.TankSim.MultiController";
            var ipAddr = IPTools.GetLocalIP();
            var config = new ArdNetServerConfig(appID, ipAddr, ServerPort);

            config.TCP.DataSerializationProvider                    = new MessagePackSerializationProvider();
            config.TCP.HeartbeatConfig.ForceStrictHeartbeat         = true;
            config.TCP.HeartbeatConfig.RespondToHeartbeats          = true;
            config.TCP.HeartbeatConfig.HeartbeatInterval            = TimeSpan.FromMilliseconds(PingRateMills);
            config.TCP.HeartbeatConfig.HeartbeatToleranceMultiplier = 3;

            var ardServer = new ArdNetServer(config, MsgHub);

            ardServer.Start();
            return(ardServer);
        }
        public RobustServerCLI(bool DEBUG = false)
        {
            var configBuilder = new ConfigurationBuilder();

            _ = configBuilder.AddJsonFile("config.json", optional: false, reloadOnChange: true);
            var config = configBuilder.Build();

            int    serverPort = config.GetValue <int>("ServerPort");
            string AppID      = config.GetValue <string>("AppID");

            MsgHub = new MessageHub();

            _ = IPTools.TryGetLocalIP(out var localAddress);
            var netConfig = new ArdNetServerConfig(AppID, localAddress, serverPort);

            //var providerFlags = TcpDataStreamOptions.Server | TcpDataStreamOptions.Encrypted;
            //netConfig.TCP.DataStreamProvider = TcpDataStreamProvider.GetProvider(providerFlags, myCertFactory);
            ArdServer = new ArdNetServer(netConfig, MsgHub);
            ArdServer.NetConfig.TCP.HeartbeatConfig.HeartbeatInterval            = TimeSpan.FromMilliseconds(1000);
            ArdServer.NetConfig.TCP.HeartbeatConfig.ForceStrictHeartbeat         = true;
            ArdServer.NetConfig.TCP.HeartbeatConfig.RespondToHeartbeats          = false;
            ArdServer.NetConfig.TCP.HeartbeatConfig.HeartbeatToleranceMultiplier = 0;


            ArdLogger = new LoggingMessageHubClient(
                ArdServer.MessageHub,
                MessageCategoryTypes.ExceptionMessages | MessageCategoryTypes.LoggingMessages);
            ArdLogger.LogPushed += (sender, msg) =>
            {
                Console.WriteLine($"LOG: {msg.Message}");
            };
            ArdLogger.ExceptionPushed += (sender, msg) =>
            {
                if (msg.Severity == ExceptionSeverity.Expected)
                {
                    return;
                }
                Console.WriteLine($"EXCEPTION: {msg.Exception}");
            };

            MouseMover = new MouseMover(ArdServer);
        }