コード例 #1
0
 public void SetUp()
 {
     clientFactory = MockRepository.GenerateStub<IClientFactory>();
     clientFactory.Stub(x => x.MakeNewClient(Arg<int>.Is.Anything)).Return(new Client(null) { ID = 100 });
     stubSnapCounter = MockRepository.GenerateStub<ISnapCounter>();
     stubNetworkSession = MockRepository.GenerateStub<INetworkSession>();
     clientStateTracker = new ClientStateTracker(stubSnapCounter, stubNetworkSession, clientFactory);
 }
コード例 #2
0
ファイル: ClientStateTracker.cs プロジェクト: zakvdm/Frenetic
        public ClientStateTracker(ISnapCounter snapCounter, INetworkSession networkSession, IClientFactory clientFactory)
        {
            _snapCounter = snapCounter;
            _networkSession = networkSession;
            _clientFactory = clientFactory;

            networkSession.ClientJoined += HandleNewClientJoined;
            networkSession.ClientDisconnected += HandleClientDisconnect;

            NetworkClients = new List<Client>();
        }
コード例 #3
0
 public void ConnectLobby()
 {
     if (Game.Instance.Online)
     {
         session = new NetworkSession(LobbySessionName);
     }
     else
     {
         session = new OfflineNetworkSession(LobbySessionName);
     }
     if (session != null)
     {
         session.Connect("127.0.0.1", 8888);
     }
 }
コード例 #4
0
        public async Task <IMessage> Handle(IMessage inbound, INetworkSession session)
        {
            var request = (ProvisioningRequest)inbound;

            var config = await _repo.GetConfig(request.SerialNumber);

            if (config == null)
            {
                throw new ClientException("urn:sp:bad-sn", "The supplied serial number is not available for provisioning");
            }

            await _repo.Provision(request.SerialNumber);

            return(new ProvisioningResponse
            {
                Config = config
            });
        }
コード例 #5
0
        public Task <IMessage> Handle(IMessage r, INetworkSession session)
        {
            var sensorModule = (session as IIngestionNetworkSession)?.SensorModule;

            if (sensorModule == null)
            {
                throw new ClientMissingHandshakeException();
            }

            var request = (TimeRequest)r;

            Console.WriteLine("TimeRequest from " + sensorModule.Name);

            var msg = (IMessage) new TimeResponse
            {
                Timestamp = (ulong)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds
            };

            return(Task.FromResult(msg));
        }
コード例 #6
0
 public IncomingMessageQueue(INetworkSession networkSession, IClientStateTracker clientStateTracker)
 {
     _networkSession = networkSession;
     _clientStateTracker = clientStateTracker;
     InitializeQueues();
 }
コード例 #7
0
 public void EndSession(INetworkSession session)
 {
     gamers.Clear();
     session = null;
 }
コード例 #8
0
 public void SetSession(INetworkSession session)
 {
     this.currentSession = session;
 }
コード例 #9
0
 public void SetUp()
 {
     stubNetworkSession = MockRepository.GenerateStub<INetworkSession>();
     msgQueue = new OutgoingMessageQueue(stubNetworkSession);
 }
コード例 #10
0
 public void Accept(INetworkSession networkSession)
 {
     acceptedSessions.Add(networkSession);
 }
コード例 #11
0
 public void Add(INetworkSession networkSession)
 {
     this.sessions.Add(networkSession);
 }
コード例 #12
0
        public OutgoingMessageQueue(INetworkSession networkSession)
        {
            this.NetworkSession = networkSession;

            this.CurrentMessage = new Message();
        }