コード例 #1
0
ファイル: MucJoinHelper.cs プロジェクト: UWPX/UWPX-Client
        public async Task EnterRoomAsync()
        {
            using (SemaLock semaLock = INFO.NewSemaLock())
            {
                // Update MUC info:
                INFO.state = MucState.ENTERING;
                using (MainDbContext ctx = new MainDbContext())
                {
                    // Clear MUC members:
                    INFO.occupants.ForEach(o => o.Remove(ctx, true));
                    INFO.occupants.Clear();
                    INFO.OnOccupantsChanged();
                    ctx.Update(INFO);
                }
            }

            // Create message:
            JoinRoomRequestMessage msg = new JoinRoomRequestMessage(CLIENT.getXMPPAccount().getFullJid(), INFO.chat.bareJid, INFO.nickname, INFO.password);

            // Subscribe to events for receiving answers:
            CLIENT.NewMUCMemberPresenceMessage -= OnMucMemberPresenceMessage;
            CLIENT.NewMUCMemberPresenceMessage += OnMucMemberPresenceMessage;
            CLIENT.NewMUCPresenceErrorMessage  -= OnMucPresenceErrorMessage;
            CLIENT.NewMUCPresenceErrorMessage  += OnMucPresenceErrorMessage;

            // Send message:
            await CLIENT.SendAsync(msg);

            Logger.Info($"Entering MUC room '{INFO.chat.bareJid}' as '{INFO.nickname }'...");
        }
コード例 #2
0
        public async Task enterRoomAsync()
        {
            // Update MUC info:
            INFO.state = MUCState.ENTERING;
            saveMUCEnterState();

            // Clear MUC members:
            MUCDBManager.INSTANCE.deleteAllOccupantsforChat(MUC.id);

            // Create message:
            JoinRoomRequestMessage msg = new JoinRoomRequestMessage(CLIENT.getXMPPAccount().getFullJid(), MUC.chatJabberId, INFO.nickname, INFO.password);

            // Subscribe to events for receiving answers:
            CLIENT.NewMUCMemberPresenceMessage -= CLIENT_NewMUCMemberPresenceMessage;
            CLIENT.NewMUCMemberPresenceMessage += CLIENT_NewMUCMemberPresenceMessage;

            // Send message:
            await CLIENT.SendAsync(msg);

            Logger.Info("Entering MUC room '" + MUC.chatJabberId + "' as '" + INFO.nickname + '\'');
        }