Example #1
0
        public void SendMessageToUser(string userId, string message)
        {
            var signalRPublisher   = new SignalRPublisher();
            var inMemoryRepository = new InMemoryUserRepository();

            var currentUser = inMemoryRepository.Get(Guid.Parse(Context.ConnectionId));
            var toUser      = inMemoryRepository.Get(Guid.Parse(userId));

            signalRPublisher.Send(currentUser.Id, BuildChatReceived(currentUser, toUser, message));
            signalRPublisher.Send(toUser.Id, BuildChatReceived(currentUser, toUser, message));
        }
Example #2
0
        public void SubscribeUser(string nickName)
        {
            var signalRPublisher   = new SignalRPublisher();
            var inMemoryRepository = new InMemoryUserRepository();

            inMemoryRepository.Add(new User
            {
                Id       = Guid.Parse(Context.ConnectionId),
                NickName = nickName
            });

            signalRPublisher.Publish(new UserSubscribed(Guid.Parse(Context.ConnectionId), nickName));
        }
Example #3
0
        static async Task Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                         .AddUserSecrets <Program>()
                         .Build();

            var connectionString = config.ResolveValue("SignalR:ConnectionString");

            const string HubName    = "hub1";
            const string MethodName = "method1";

            WriteLine("Please enter messages!");

            var publisher = new SignalRPublisher(connectionString);

            while (true)
            {
                await publisher
                .PublishAsync(HubName, MethodName, ReadLine())
                .ConfigureAwait(false);
            }
        }