我正在使用適用於iOS的XMPPFramework。XMPPFramework - 獲取重複消息
我的問題是,當我加入一個房間,然後離開它,並再次加入我從那個房間收到消息,或在該房間內的私人消息兩次,如果我離開它,再次加入,我接收3次, 等等。
我被告知我可能註冊了多個代表而不是刪除它們,但如果我這樣做,我意外地做了這件事,我不確定這是怎麼回事。 任何人都可以幫助找到這種情況發生在哪裏?也許一個例子會幫我在我的代碼中找到它。
謝謝。
我正在使用適用於iOS的XMPPFramework。XMPPFramework - 獲取重複消息
我的問題是,當我加入一個房間,然後離開它,並再次加入我從那個房間收到消息,或在該房間內的私人消息兩次,如果我離開它,再次加入,我接收3次, 等等。
我被告知我可能註冊了多個代表而不是刪除它們,但如果我這樣做,我意外地做了這件事,我不確定這是怎麼回事。 任何人都可以幫助找到這種情況發生在哪裏?也許一個例子會幫我在我的代碼中找到它。
謝謝。
以防萬一有人喜歡知道。
正確的方式離開房間是做這套功能:
[xmppRoom leaveRoom];
[xmppRoom deactivate];
[xmppRoom removeDelegate:self];
我的事情有一個與remoteTimestamp值存在問題。我通過附加的解決方法解決問題的文件: 擴展/ XEP-0045/CoreDataStorage/XMPPRoomCoreDataStorage.m
前:
- (BOOL)existsMessage:(XMPPMessage *)message forRoom:(XMPPRoom *)room stream:(XMPPStream *)xmppStream
{
NSDate *remoteTimestamp = [message delayedDeliveryDate];
if (remoteTimestamp == nil)
{
return NO;
}
NSManagedObjectContext *moc = [self managedObjectContext];
......
}
後:
- (BOOL)existsMessage:(XMPPMessage *)message forRoom:(XMPPRoom *)room stream:(XMPPStream *)xmppStream
{
NSDate *remoteTimestamp = [message delayedDeliveryDate];
if (remoteTimestamp == nil)
{
return NO;
}
remoteTimestamp = nil;
NSManagedObjectContext *moc = [self managedObjectContext];
......
}
我真的失去了這一個,任何幫助將不勝感激。 – subharb 2012-01-17 08:34:11
嗨大衛,我正在開發一個應用程序,我需要羣聊功能,目前我可以做一對一的聊天。我正在使用XMPP類。但我也需要羣聊。我知道它會使用XMPPRoom類。但我無法鍛鍊代碼。請爲我提供一些示例代碼,以創建獨特的聊天室並加入一個房間。謝謝。 – Naveen 2012-01-25 07:21:28
你可以發佈它作爲一個問題,並提供給我的鏈接?同時我會看看我的代碼。 – subharb 2012-01-26 08:46:34