加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

iPhone平台下基于XMPP的IM分析

发布时间:2021-11-24 21:09:41 所属栏目:教程 来源:互联网
导读:看了下iphone平台下xmpp的使用。XmppFramework 是一个开源项目,使用Objective-C实现了XMPP协议,它和前面所说的smack使用起来一样的方便,不过官网上提供的资料远不及smack。 目前需要使用git才能download到源码,。 PC客户端使用Spark,不知是否是我的黑苹

看了下iphone平台下xmpp的使用。XmppFramework 是一个开源项目,使用Objective-C实现了XMPP协议,它和前面所说的smack使用起来一样的方便,不过官网上提供的资料远不及smack。
 
 目前需要使用git才能download到源码,。
 
PC客户端使用Spark,不知是否是我的黑苹果原因,spark装上不能运行(郁闷中...)
 
服务器使用Openfire
 
数据库我使用还是MySQL
 
怎样将XMPPFramework添加到我们自己的项目中 。
 
代码步骤:
 
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:
 
//   
//  XmppTest1AppDelegate.h   
//  XmppTest1   
//   
//  Created by liu lavy on 11-10-2.   
//  Copyright 2011 __MyCompanyName__. All rights reserved.   
//   
  
#import <UIKit/UIKit.h>   
#import "XMPPFramework.h"   
  
@class XmppTest1ViewController;  
  
@interface XmppTest1AppDelegate : NSObject <UIApplicationDelegate, XMPPRosterDelegate> {  
    UIWindow *window;  
    XmppTest1ViewController *viewController;  
    XMPPStream *xmppStream;  
    XMPPReconnect *xmppReconnect;  
    NSString *myPassword;  
}  
  
@property (nonatomic, retain) IBOutlet UIWindow *window;  
@property (nonatomic, retain) IBOutlet XmppTest1ViewController *viewController;  
  
@property (nonatomic, retain) XMPPStream *xmppStream;  
@property (nonatomic, readonly) XMPPReconnect *xmppReconnect;  
@property (nonatomic, retain) NSString *myPassword;  
  
  
-(BOOL) connect:(NSString *)myJID password:(NSString *)myPassword;  
-(BOOL) authenticate;  
-(void) disConnect;  
@end  

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读