示例#1
0
        public MultiPlayerClient(IClientNetworkProvider networkProvider)
        {
            this.clientNetworkProvider = networkProvider;
            networkProvider.MessageReceived.SubscribeForLifetime((m) =>
            {
                var hydratedEvent = MultiPlayerMessage.Deserialize(m);
                EventRouter.Route(hydratedEvent.GetType().Name, hydratedEvent);
            }, this);
            this.OnDisposed(() =>
            {
                if (isConnected)
                {
                    TrySendMessage(new LeftMessage()
                    {
                        ClientWhoLeft = this.ClientId
                    });
                }
                this.clientNetworkProvider.Dispose();
            });

            EventRouter.Register <Ack>(OnAck, this);
        }