看了下iphone平台下xmpp的使用。XmppFramework 是一個開源項目,使用Objective-C實現了XMPP協議,它和前面所說的smack使用起來一樣的方便,不過官網上提供的資料遠不及smack。
源碼地址:http://code.google.com/p/xmppframework/,目前需要使用git才能download到源碼,。
PC客戶端使用Spark,不知是否是我的黑蘋果原因,spark裝上不能運行(郁悶中...)
服務器使用Openfire
數據庫我使用還是MySQL
怎樣將XMPPFramework添加到我們自己的項目中,請參考http://www.linuxidc.com/Linux/2011-10/45823.htm。
代碼步驟:
1、初始化XMPPStream
xmppStream = [[XMPPStream alloc] init];
xmppStream.hostName = @"127.0.0.1";
xmppStream.hostPort = 5222;
[xmppStreamaddDelegate:selfdelegateQueue:dispatch_get_main_queue()];
XmppFramework的消息監聽方式使用delegate。在smack中我們使用的是listener,其實都一樣。
2、設置JID;(注意JID的Domain一定要用主機名,不要用IP地址。我的疏忽讓我晚上熬到了3點多)
xmppStream.myJID = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@liu-lavymatoMacBook-Pro.local",myJID]];
3、連接服務器
NSError *error = nil;
[xmppStream connect:&error];
接下來就是一系列依次調用delegate的方法
xmppStreamWillConnect
socketDidConnect
xmppStreamDidConnect 在這個方法中我們需要調用: [xmppStreamauthenticateWithPassword:myPassworderror:&error]
驗證成功:xmppStreamDidAuthenticate:
驗證失敗:xmppStream: didNotAuthenticate: