【问题标题】:xmppframework iphone Unable to add users into a groupxmppframework iphone无法将用户添加到组中
【发布时间】:2019-05-10 09:47:54
【问题描述】:

我正在尝试使用 XMPPFramework 制作聊天应用程序。我完成了连接设置。我也可以聊天单用户。我还可以创建一个组来在多个用户之间进行聊天。我的问题是创建组后,当我想将用户添加到组中时不起作用。这是我使用的代码。而且,我没有得到任何调用这个方法didFetchModeratorsList:

Step-1
#pragma mark --- Create Room
- (void) createChatRoom:(NSString *)groupName{
    if (!groupName)
    {
        return;
    }

    XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init];

    NSString* roomID = [NSString stringWithFormat:@"%@@conference.%@", groupName, CURRENT_HOST_NAME];
    XMPPJID * roomJID = [XMPPJID jidWithString:roomID];
    XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomStorage
                                                           jid:roomJID
                                                 dispatchQueue:dispatch_get_main_queue()];


    [xmppRoom activate:xmppStream];
    [xmppRoom addDelegate:self
            delegateQueue:dispatch_get_main_queue()];

    /*
     NSXMLElement *history = [NSXMLElement elementWithName:@"history"];
     [history addAttributeWithName:@" maxchars" stringValue:@"0"];
     */
    [xmppRoom joinRoomUsingNickname:xmppStream.myJID.user
                            history:nil
                           password:nil];

    [self performSelector:@selector(ConfigureNewRoom:) withObject:nil afterDelay:3];


}

Step-2
#pragma mark --- addMemberInChatRoom
- (void) addMemberInChatRoom:(NSString*)roomName :(NSArray*)memberId{
    NSLog(@"roomName: %@", roomName);
    NSLog(@"memberId: %@", memberId);

    XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init];
    NSString* roomID = [NSString stringWithFormat:@"%@@conference.%@", roomName, CURRENT_HOST_NAME];
    XMPPJID * roomJID = [XMPPJID jidWithString:roomID];
    XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:roomStorage
                                                           jid:roomJID
                                                 dispatchQueue:dispatch_get_main_queue()];
    [xmppRoom activate:xmppStream];
    [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];

    [xmppRoom joinRoomUsingNickname:xmppStream.myJID.user
                            history:nil
                           password:nil];

    [self performSelector:@selector(ConfigureNewRoom:) withObject:nil afterDelay:1];



     [xmppRoom inviteUsers:memberId withMessage:@"join this room"];

}

Step-3
 #pragma mark ---  This fuction is used configure new
- (void)ConfigureNewRoom:(XMPPRoom *)xmppRoom
{
    [xmppRoom configureRoomUsingOptions:nil];
    [xmppRoom fetchConfigurationForm];
    //[xmppRoom fetchBanList];
    [xmppRoom fetchMembersList];
    //[xmppRoom fetchModeratorsList];
}

Step-4
- (void)xmppRoom:(XMPPRoom *)sender didFetchModeratorsList:(NSArray *)items
{
    NSLog(@"%@: %@ --- %@", THIS_FILE, THIS_METHOD, sender.roomJID.bare);

}

【问题讨论】:

    标签: objective-c iphone xcode openfire xmppframework


    【解决方案1】:

    我认为您正在使用两个不同的实例。 使用类似下面的东西。这对我有用。

    private var toBeCreatedRoom: XMPPRoom!
    
    func createRoom(_ roomName: String) {
      let roomStorage = XMPPRoomMemoryStorage()
      let name = roomName + "@conference." + "hostName"
      let roomJID = XMPPJID(string: name)
      toBeCreatedRoom = XMPPRoom(roomStorage: roomStorage!, jid: roomJID!, dispatchQueue: DispatchQueue.main)
      toBeCreatedRoom.addDelegate(self, delegateQueue: DispatchQueue.main)
      toBeCreatedRoom.activate(self.xmppStream)
      toBeCreatedRoom.join(usingNickname: "self.userName", history: nil, password: nil)
    }
    
    func inviteUsersToRoom(roomMembers: [XMPPJID]) {
      if let room = toBeCreatedRoom {
        for member in roomMembers {
          let element = XMPPRoom.item(withAffiliation: "member", jid: member)
          room.editPrivileges([element])
          room.inviteUser(member, withMessage: "Hey, Welcome to the group!")
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 2013-09-04
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 2021-10-03
      • 1970-01-01
      相关资源
      最近更新 更多