/// <summary> /// Search for user's to add by email address /// </summary> /// <param name="email"></param> /// <param name="callback"></param> public async void Search(string email, EventHandler <IqEventArgs> callback) { // query to list searchable fields // openfire responds w/first last nick email/ /* * var s2 = new Iq() { * To = "search.messaging.beetmessenger.com", * Type = IqType.Get, * Query = new Matrix.Xmpp.Search.Search() * }; */ var search = new Matrix.Xmpp.Search.Search(); search.Email = email; var s = new Iq() { To = "search.messaging.beetmessenger.com", Type = IqType.Set, Query = search, }; s.GenerateId(); this.xmppClient.IqFilter.SendIq(s, callback); }
/// <summary> /// Registers a new account on the XMPP server. /// compression. /// </summary> /// <returns></returns> /// <exception cref="RegisterException">Thrown when the registration fails.</exception> private async Task DoRegisterAsync(CancellationToken cancellationToken) { XmppSessionState.Value = SessionState.Registering; var regInfoIqResult = await SendIqAsync( new RegisterIq { Type = IqType.Get, To = XmppDomain }, cancellationToken); if (regInfoIqResult.Type == IqType.Result && regInfoIqResult.Query is Register) { var regIq = new Iq { Type = IqType.Set, To = new Jid(XmppDomain) }; regIq.GenerateId(); regIq.Query = await RegistrationHandler?.RegisterAsync(regInfoIqResult.Query as Register); var regResult = await SendIqAsync(regIq, cancellationToken); if (regResult.Type == IqType.Result) { XmppSessionState.Value = SessionState.Registered; return; } else { throw new RegisterException(regResult); } } throw new RegisterException(regInfoIqResult); }
public void retrieveArchivedMessages(string from) { var list = new Matrix.Xmpp.MessageArchiving.List { With = from }; var iq = new Iq { Type = IqType.Get, Query = list }; iq.GenerateId(); XmppClients[Context.ConnectionId].IqFilter.SendIq(iq, RetrieveArchivedMessagesCallback); }