public static IMessageBuilder Create(IInterlocutorChatSession chatSession) { if (chatSession.ActiveResource != null && DiscoService.HasFeature(chatSession.ActiveResource, ExtUri.XAML)) { return new XamlMessageBuilder(); } return new TextMessageBuilder(); }
public void SendMessage(IInterlocutorChatSession chatSession, Message outMessage) { outMessage.To = chatSession.ActiveResource == null ? XmppIdConverter.Jid(chatSession.Interlocutor) : chatSession.ActiveResource.Jid; //outMessage.From = ClientContext.Jid; outMessage.Type = MessageType.chat; Connection.Send(outMessage); // agsXMPP doesn't fire onMessage event automatically, // so push message to feed right here var contactMessage = new FeedMessage(); contactMessage.XmppMessage = outMessage; contactMessage.Date = DateTime.Now; contactMessage.ClientId = Client.Id; Provider.EmitMessage(contactMessage); }
private IInterlocutorChatSession GetOrCreateSession() { return _chatSession ?? (_chatSession = ChatSession.Create(Interlocutor)); }