Пример #1
0
        public Task <IRoomData> GetState()
        {
            var command = new GetRoomStateCommand
            {
                RoomId = _roomId
            };

            return(_context.Send(command));
        }
Пример #2
0
        private static async Task TestHandler()
        {
            var config = ClientConfiguration.LocalhostSilo();

            config.AddSimpleMessageStreamProvider(StreamConstants.ProviderName);
            var host   = new OrleansClientInitializer(config);
            var client = await OrleansClient.Initialize(host);

            var container = new Container();

            container.RegisterClientHandlerFactory();
            var handlerFactory = container.GetInstance <ClientHandlerFactory>();

            using (var connection = await client.Connect(Guid.NewGuid()))
            {
                var handler = handlerFactory.Create(connection);
                handler.Events.Subscribe(Write);
                var meta          = new Metadata();
                var loginResponse = await handler.Handle(new LoginCommand(), meta);

                Write(loginResponse);
                meta = new Metadata {
                    AccessToken = loginResponse.AccessToken
                };
                var joinRoom = new JoinRoomCommand {
                    RoomId = "conreign"
                };
                await handler.Handle(joinRoom, meta);

                var updatePlayer = new UpdatePlayerOptionsCommand
                {
                    RoomId  = "conreign",
                    Options = new PlayerOptionsData
                    {
                        Nickname = "smolyakoff",
                        Color    = "#010101"
                    }
                };
                await handler.Handle(updatePlayer, meta);

                var write = new SendMessageCommand
                {
                    RoomId = "conreign",
                    Text   = "Hello!"
                };
                await handler.Handle(write, meta);

                var getState = new GetRoomStateCommand
                {
                    RoomId = "conreign"
                };
                var state = await handler.Handle(getState, meta);

                Write(state);
            }
        }