Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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);
        }