public virtual void JoinChat(ChatClient phoneChatMessage) { // Disparamos la conexión y nos unimos a la sala this.ChatConnection.Start().ContinueWith(task => { if (task.IsFaulted) { // Manejar el error ante un fallo en la conexión } }); // Escuchamos los eventos del servidor y los disparamos this.SignalRChatHub.On<string>("addChatMessage", message => { SignalREventArgs chatArgs = new SignalREventArgs(); var serverMsg = JsonConvert.DeserializeObject<ChatServer>(message); chatArgs.ChatMessageFromServer = serverMsg.Name + ": " + serverMsg.Message; // Disparamos nuestro evento local OnSignalRServerNotificationReceived(chatArgs); }); this.SignalRChatHub.On<string>("showIsTyping", info => { SignalRTypingArgs typingArgs = JsonConvert.DeserializeObject<SignalRTypingArgs>(info); OnSignalRSomeoneIsTyping(typingArgs); }); this.SignalRChatHub.On<string>("hideIsTyping", info => { SignalRTypingArgs typingArgs = JsonConvert.DeserializeObject<SignalRTypingArgs>(info); OnSignalRHideIsTyping(typingArgs); }); }
public virtual void HideIsTyping(ChatClient phoneChatMessage) { // Posteamos al server que se dejó de escribir this.SignalRChatHub.Invoke("FinishTyping").Wait(); }
public virtual void SomeoneIsTyping(ChatClient phoneChatMessage) { // Posteamos al server que alguien comenzó a escribir this.SignalRChatHub.Invoke("SomeoneIsTyping", phoneChatMessage.ChatUserName).Wait(); }
public virtual void Chat(ChatClient phoneChatMessage) { // Posteamos el mensaje al server this.SignalRChatHub.Invoke("PushMessageFromPhone", phoneChatMessage.ChatUserName, phoneChatMessage.ChatMessage).Wait(); }
public virtual void LeaveChat(ChatClient phoneChatMessage) { // Dejamos la sala de chat this.SignalRChatHub.Invoke("DisconnectFromPhone", phoneChatMessage.ChatUserName).Wait(); }