Example #1
0
        public void Connect(string ip, int port)
        {
            serverIp   = ip;
            serverPort = port;

            clientSocket            = new WebSocket($"ws://{ip}:{port}/socket");
            clientSocket.OnOpen    += ClientSocket_OnOpen;
            clientSocket.OnClose   += ClientSocket_OnClose;
            clientSocket.OnMessage += ClientSocket_OnMessage;

            PacketProcessor = new NetPacketProcessor();
#if DEBUG
            PacketProcessor.SimulateLatency = true;
#endif

            PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            clientSocket.Connect();

            SimulatedWorld.Initialize();

            LocalPlayer.IsMasterClient = false;
            LocalPlayer.SetNetworkProvider(this);
        }
Example #2
0
        public void StartServer(int port, bool loadSaveFile = false)
        {
            PlayerManager = new PlayerManager();
            if (loadSaveFile)
            {
                SaveManager.LoadServerData();
            }
            SaveManager.SaveOnExit = true;
            PacketProcessor        = new NetPacketProcessor();
            StatisticsManager      = new StatisticsManager();

#if DEBUG
            PacketProcessor.SimulateLatency = true;
#endif

            PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            socketServer = new WebSocketServer(port);
            socketServer.AddWebSocketService("/socket", () => new WebSocketService(PlayerManager, PacketProcessor));

            socketServer.Start();

            SimulatedWorld.Initialize();

            LocalPlayer.SetNetworkProvider(this);
            LocalPlayer.IsMasterClient = true;

            // TODO: Load saved player info here
            LocalPlayer.SetPlayerData(new PlayerData(PlayerManager.GetNextAvailablePlayerId(), GameMain.localPlanet?.id ?? -1, new Float3(1.0f, 0.6846404f, 0.243137181f)));
        }
        private void ConnectInternal()
        {
            LocalPlayer.TryLoadGalacticScale2();

            clientSocket            = new WebSocket(socketAddress);
            clientSocket.OnOpen    += ClientSocket_OnOpen;
            clientSocket.OnClose   += ClientSocket_OnClose;
            clientSocket.OnMessage += ClientSocket_OnMessage;

            PacketProcessor = new NetPacketProcessor();
#if DEBUG
            PacketProcessor.SimulateLatency = true;
#endif

            PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            clientSocket.Connect();

            SimulatedWorld.Initialize();

            LocalPlayer.IsMasterClient = false;
            LocalPlayer.SetNetworkProvider(this);

            if (Config.Options.RememberLastIP)
            {
                // We've successfully connected, set connection as last ip, cutting out "ws://" and "/socket"
                Config.Options.LastIP = socketAddress.Substring(5, socketAddress.Length - 12);
                Config.SaveOptions();
            }
        }
Example #4
0
        public void StartServer(int port)
        {
            EventBasedNetListener listener = new EventBasedNetListener();

            listener.ConnectionRequestEvent += OnConnectionRequest;
            listener.PeerConnectedEvent     += OnPeerConnected;
            listener.PeerDisconnectedEvent  += OnPeerDisconnected;
            listener.NetworkReceiveEvent    += OnNetworkReceive;

            server = new NetManager(listener)
            {
                AutoRecycle = true,
#if DEBUG
                SimulateLatency      = true,
                SimulatePacketLoss   = true,
                SimulationMinLatency = 50,
                SimulationMaxLatency = 100,
#endif
            };

            PlayerManager   = new PlayerManager();
            PacketProcessor = new NetPacketProcessor();
            LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            LiteNetLibUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            server.Start(port);

            SimulatedWorld.Initialize();

            LocalPlayer.SetNetworkProvider(this);
            LocalPlayer.IsMasterClient = true;

            // TODO: Load saved player info here
            LocalPlayer.SetPlayerData(new PlayerData(PlayerManager.GetNextAvailablePlayerId(), new Float3(1.0f, 0.6846404f, 0.243137181f)));
        }
        public void Connect(string ip, int port)
        {
            serverIp   = ip;
            serverPort = port;

            EventBasedNetListener listener = new EventBasedNetListener();

            listener.PeerConnectedEvent    += OnPeerConnected;
            listener.PeerDisconnectedEvent += OnPeerDisconnected;
            listener.NetworkReceiveEvent   += OnNetworkReceive;

            client = new NetManager(listener)
            {
                AutoRecycle = true,
            };

            PacketProcessor = new NetPacketProcessor();
            LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            LiteNetLibUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            client.Start();
            client.Connect(ip, port, "nebula");

            SimulatedWorld.Initialize();

            LocalPlayer.IsMasterClient = false;
            LocalPlayer.SetNetworkProvider(this);
        }
Example #6
0
        private void ConnectInternal()
        {
            clientSocket            = new WebSocket(socketAddress);
            clientSocket.OnOpen    += ClientSocket_OnOpen;
            clientSocket.OnClose   += ClientSocket_OnClose;
            clientSocket.OnMessage += ClientSocket_OnMessage;

            PacketProcessor = new NetPacketProcessor();
#if DEBUG
            PacketProcessor.SimulateLatency = true;
#endif

            PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            clientSocket.Connect();

            SimulatedWorld.Initialize();

            LocalPlayer.IsMasterClient = false;
            LocalPlayer.SetNetworkProvider(this);
        }
Example #7
0
        public void StartServer(int port, bool loadSaveFile = false)
        {
            PlayerManager = new PlayerManager();
            if (loadSaveFile)
            {
                SaveManager.LoadServerData();
            }
            PacketProcessor   = new NetPacketProcessor();
            StatisticsManager = new StatisticsManager();

#if DEBUG
            PacketProcessor.SimulateLatency = true;
#endif

            PacketUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            PacketUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor, true);

            socketServer = new WebSocketServer(System.Net.IPAddress.IPv6Any, port);
            DisableNagleAlgorithm(socketServer);

            socketServer.AddWebSocketService("/socket", () => new WebSocketService(PlayerManager, PacketProcessor));

            LocalPlayer.TryLoadGalacticScale2();

            socketServer.Start();

            SimulatedWorld.Initialize();

            LocalPlayer.SetNetworkProvider(this);
            LocalPlayer.IsMasterClient = true;

            // TODO: Load saved player info here
            LocalPlayer.SetPlayerData(new PlayerData(
                                          PlayerManager.GetNextAvailablePlayerId(),
                                          GameMain.localPlanet?.id ?? -1,
                                          new Float3(Config.Options.MechaColorR / 255, Config.Options.MechaColorG / 255, Config.Options.MechaColorB / 255),
                                          !string.IsNullOrWhiteSpace(Config.Options.Nickname) ? Config.Options.Nickname : GameMain.data.account.userName));
        }