2014-01-10 20 views
0

當從後臺回來時,我們的應用會自動重新連接到聊天服務器並進入房間。從backbround回來後QBChat/XEP-0045/leavRoom會自動恢復嗎? (Quickblox)

一切順利,聊天室歷史記錄已成功載入。但突然之間,我們收到「QBChat/XEP-0045/leavRoom」,因爲「房間未加入」而無法將消息發送到房間。

關於爲什麼這種行爲符合要求的任何想法?

+0

您是否使用ARC? –

+0

是的,我們使用ARC。 –

回答

0

我建議使用下一個邏輯:

@property (strong, nonatomic) QBChatRoom *testRoom; 

加入

[[QBChat instance] setDelegate:self]; 

[[QBChat instance] createOrJoinRoomWithName:@"myRoom" membersOnly:NO persistent:YES]; 


#pragma mark - 
#pragma mark QBChatDelegate 

- (void)chatRoomDidEnter:(QBChatRoom *)room{ 
    // retain current room 
    self.testRoom = room; 
} 

離開

[[QBChat instance] leaveRoom:testRoom]; 

#pragma mark - 
#pragma mark QBChatDelegat 

- (void)chatRoomDidLeave:(NSString *)roomName{ 
    // release room 
    self.testRoom = nil; 
} 

我覺得你的問題是與self.te stRoom = nil;,你不這樣做。但你應該。 試試這個建議。

http://quickblox.com/developers/SimpleSample-chat_users-ios#Joining.2Fleaving_rooms