示例#1
0
        private void ProcessMucUser(MucUser item)
        {
            // Get the Status code
            MucUserStatus status = item.Items.OfType<MucUserStatus>().FirstOrDefault();

            if (status != null)
            {
                switch (status.Code)
                {
                    case 100:
                        // stanza : message or presence
                        // context: Entering a room
                        // purpose: Inform user that any occupant is allowed to see the user's full JID
                        break;

                    case 101:
                        // stanza : message (out of band)
                        // context: Affiliation change
                        // purpose: Inform user that his or her affiliation changed while not in the room
                        break;

                    case 102:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that room now shows unavailable members
                        break;

                    case 103:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that room now does not show unavailable members
                        break;

                    case 104:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that a non-privacy-related room configuration change has occurred
                        break;

                    case 110:
                        // stanza : presence
                        // context: Any room presence
                        // purpose: Inform user that presence refers to one of its own room occupants</purpose>
                        break;

                    case 170:
                        // stanza : message or initial presence
                        // context: Configuration change
                        // purpose: Inform occupants that room logging is now enabled
                        break;

                    case 171:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that room logging is now disabled
                        break;

                    case 172:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that the room is now non-anonymous
                        break;

                    case 173:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that the room is now semi-anonymous
                        break;

                    case 174:
                        // stanza : message
                        // context: Configuration change
                        // purpose: Inform occupants that the room is now fully-anonymous
                        break;

                    case 201:
                        // stanza : presence
                        // context: Entering a room
                        // purpose: Inform user that a new room has been created
                        break;

                    case 210:
                        // stanza : presence
                        // context: Entering a room
                        // purpose: Inform user that service has assigned or modified occupant's roomnick
                        break;

                    case 301:
                        // stanza : presence
                        // context: Removal from room
                        // purpose: Inform user that he or she has been banned from the room
                        break;

                    case 303:
                        // stanza : presence
                        // context: Exiting a room
                        // purpose: Inform all occupants of new room nickname
                        break;

                    case 307:
                        // stanza : presence
                        // context: Removal from room
                        // purpose: Inform user that he or she has been kicked from the room
                        break;

                    case 321:
                        // stanza : presence
                        // context: Removal from room
                        // purpose: Inform user that he or she is being removed from the room
                        //          because of an affiliation change
                        break;

                    case 322:
                        // stanza : presence
                        // context: Removal from room
                        // purpose: Inform user that he or she is being removed from the room
                        //          because the room has been changed to members-only and the user
                        //          is not a member
                        break;

                    case 332:
                        // stanza : presence
                        // context: Removal from room
                        // purpose: Inform user that he or she is being removed from the room
                        //          because of a system shutdown
                        break;
                }
            }
        }
示例#2
0
        /// <summary>
        /// Invites the given contact to the chat room
        /// </summary>
        /// <param name="contact"></param>
        public XmppChatRoom Invite(XmppContact contact)
        {
            MucUser user    = new MucUser();
            Message message = new Message
            {
                From    = this.Session.UserId,
                To      = this.Identifier.BareIdentifier,
            };
            MucUserInvite   invite  = new MucUserInvite
            {
                To      = contact.ContactId.BareIdentifier,
                Reason  = "Ninja invite"
            };

            user.Items.Add(invite);
            message.Items.Add(user);

            this.Session.Send(message);

            return this;
        }