コード例 #1
0
        public void ClientConnectedEventTest()
        {
            var sReactor = new ServerReactor();
            var cReactor = new ClientReactor();
            var server   = new UcServer(_port, sReactor, _serverDir);

            server.Start();
            var serverConnectionEvent = new AutoResetEvent(false);

            server.ClientConnected += (_, __) =>
            {
                var numberOfClients = server.Connections.Count; // potential bug here
                Assert.AreEqual(1, numberOfClients);

                serverConnectionEvent.Set();
            };
            var client = new UCClientConnection(cReactor, _clientDir);
            var ok     = new AutoResetEvent(false);

            client.Started += (_, __) => {
                client.Reactor.CallRemoteMethod("TestMethod");
                ok.Set();
            };
            client.Start("127.0.0.1", _port);
            Assert.IsTrue(ok.WaitOne(50));
            Assert.IsTrue(serverConnectionEvent.WaitOne(50));
            client.Stop();
            server.Stop();
        }
コード例 #2
0
ファイル: CubeServer.cs プロジェクト: NoDogsInc/Cube
        protected virtual void Awake()
        {
            connections = new List <Connection>();

            var transport = GetComponent <ITransport>();

            NetworkInterface = transport.CreateServer(NumMaxClients, LagSettings);
            NetworkInterface.Start(Port);

            NetworkInterface.NewConnectionEstablished += OnNewConnectionEstablished;
            NetworkInterface.DisconnectNotification   += OnDisconnectNotification;

            Reactor = new ServerReactor(NetworkInterface);

            ReplicaManager = new ServerReplicaManager(this);
        }
コード例 #3
0
        public void ReactorConnectionTimingTest()
        {
            var sReactor = new ServerReactor();
            var cReactor = new ClientReactor();
            var server   = new UcServer(_port, sReactor, _serverDir);

            server.Start();
            var client = new UCClientConnection(cReactor, _clientDir);
            var ok     = new AutoResetEvent(false);

            client.Started += (_, __) => { client.Reactor.CallRemoteMethod("TestMethod");
                                           ok.Set(); };
            client.Start("127.0.0.1", _port);
            Assert.IsTrue(ok.WaitOne(50));
            client.Stop();
            server.Stop();
        }
コード例 #4
0
ファイル: TestReactor.cs プロジェクト: NoDogsInc/Cube
        public void TestServerReactor()
        {
            var server  = new LocalServerInterface();
            var reactor = new ServerReactor(server);

            bool messageHandlerCalled = false;

            reactor.AddHandler(1, (Connection connection, BitReader bs) => {
                messageHandlerCalled = true;
            });

            var message = new BitWriter();

            message.WriteByte((byte)1);
            server.EnqueueMessage(Connection.Invalid, message);

            server.Update();

            Assert.IsTrue(messageHandlerCalled);
        }