2011-11-17 77 views
2

我正在開發一個使用XMPPFramework和Openfire作爲服務器的聊天應用程序。我的應用程序的用戶正在其他服務器上註冊自己。我僅將Openfire服務器用於聊天通信。使用XMPPFramework和Openfire服務器的iPhone聊天

現在,我對我的聊天應用程序的體系結構有懷疑。

我希望每次用戶在我的服務器上註冊時都會將用戶添加到Openfire中。爲此,我必須在我的服務器中編寫一個服務,以將註冊的詳細信息插入到Openfire中。這個結構可以嗎?

另一個問題 - 是否可以在iPhone中使用Objective-C在Openfire服務器中插入/創建用戶? Openfire是否有適用於此的API,還是必須編寫一個外部查詢來插入Openfire數據庫?

如果插入是可以通過iPhone應用程序而不是使用外部服務,任何人都可以提供我的方法和代碼使用的鏈接?

+3

查看帶內註冊http://xmpp.org/extensions/xep-0077.html – Marc

回答

0

帶內註冊無疑是用XMPP做到這一點的最佳方式。

0

首先檢查啓動的xmpstream是否支持通過方法'supportsInBandRegistration'註冊。註冊的基本要求是應該存在有效的xmpp連接。

如果登記被支持,創建以下數組元素

NSMutableArray *elements = [NSMutableArray array]; 
[elements addObject:[NSXMLElement elementWithName:@"username" stringValue:@"userName"]]; 
[elements addObject:[NSXMLElement elementWithName:@"password" stringValue:[[NSUserDefaults standardUserDefaults] valueForKey:userPassword]]]; 

並穿過XMPPStream方法,

- (BOOL)registerWithElements:(NSArray *)elements error:(NSError **)errPtr 

註冊成功可以用下面的委託方法進行檢查。

- (void)xmppStreamDidRegister:(XMPPStream *)sender 
相關問題