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)); }
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)); }
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); } }