亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

XMPP接受發送消息

2019-11-14 18:39:10
字體:
來源:轉載
供稿:網友

  在現階段的通信服務中,各種標準都有,因此會出現無法實現相互連通,而XMPP(Extensible Message and PResence Protocol)協議的出現,實現了整個及時通信服務協議的互通。有了這個協議之后,使用任何一個組織或者個人提供的即使通信服務,都能夠無障礙的與其他的及時通信服務的用戶進行交流。例如google 公司2005年推出的Google talk就是一款基于XMPP協議的即時通信軟件。下面我們就談論一下如何簡單的使用XMPP的接收和發送消息

1、在XMPPFramework.h中將需要用到的頭文件打開

 

2、在storyboard創建展示消息頁面

 

3、定義查詢結果存儲器并且進行初始化

//消息存檔@property(nonatomic,strong) XMPPMessageArchiving * messageArch;//消息存檔存儲模型@property(nonatomic,strong) XMPPMessageArchivingCoreDataStorage * messageStore;

4、在上面storyboard創建的控制器中,添加如下代碼

AppDelegate * delgate=[UIapplication sharedApplication].delegate;        //初始化頭像    XMPPJID * fromJid=[XMPPJID jidWithString:self.fromJid];    NSData * fromData=[delgate.vCardAvatarModule photoDataForJID:fromJid];    self.fromImage=[[UIImage  alloc] initWithData:fromData];    NSString * userName= [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"];    XMPPJID * tojid=[XMPPJID jidWithString:userName];        //設置圖片模型    NSData * toData=[delgate.vCardAvatarModule photoDataForJID:tojid];    self.meImage=[[UIImage  alloc] initWithData:toData];        if (self.fromImage==nil) {        self.fromImage=[UIImage imageNamed:@"defalut"];    }        if (self.meImage==nil) {        self.meImage=[UIImage imageNamed:@"defalut"];    }     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKey:) name:UIKeyboardWillShowNotification object:nil];        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideKey:) name:UIKeyboardWillHideNotification object:nil];        //初始化數據存儲  NSString *user=  [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"];        //初始化請求    NSFetchRequest * request=[[NSFetchRequest alloc] initWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];    request.predicate=[NSPredicate predicateWithFormat:@"bareJidStr=%@ and streamBareJidStr=%@",self.fromJid,user];            //定義排序    NSSortDescriptor * des=[NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:YES];    [request setSortDescriptors:@[des]];        //獲取上下文    NSManagedObjectContext *context=[delgate.messageStore mainThreadManagedObjectContext];        //初始化結果存儲器    fetch=[[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];        //設置代理    fetch.delegate=self;        //開始查詢    [fetch performFetch:nil];    

5、創實現tableView的代理方法

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    id <NSFetchedResultsSectionInfo>  info=fetch.sections[section];        NSLog(@"===%ld",info.numberOfObjects);    return [info numberOfObjects];    }- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{     XMPPMessageArchiving_Message_CoreDataObject * obj=[fetch objectAtIndexPath:indexPath];    JRChatTableViewCell * cell=nil;    if (obj.isOutgoing) {         cell=[tableView dequeueReusableCellWithIdentifier:@"cellto"];    }else{         cell=[tableView dequeueReusableCellWithIdentifier:@"cellfrom"];    }            //設置頭像    cell.image.image=self.meImage;    cell.selectionStyle=UITableViewCellSelectionStyleNone;    [cell setText:obj.body WithFlag:obj.isOutgoing ];    return cell;}

6、增加鍵盤控制

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKey:) name:UIKeyboardWillShowNotification object:nil];    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideKey:) name:UIKeyboardWillHideNotification object:nil];- (void) showKey:(NSNotification * ) notify{    CGFloat time=[notify.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]  ;    CGRect frame=[notify.userInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue];    [UIView animateWithDuration:time animations:^{        self.keyView.transform=CGAffineTransformMakeTranslation(0, frame.size.height*-1);    }];}- (void) hideKey:(NSNotification * ) notify{    CGFloat time=[notify.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]  ;    [UIView animateWithDuration:time animations:^{        self.keyView.transform=CGAffineTransformIdentity;    }];}

7、發送消息

-(BOOL)textFieldShouldReturn:(UITextField *)textField{    [textField resignFirstResponder];        //發送消息        //1 取出文本    AppDelegate * delgate=[UIApplication sharedApplication].delegate;        XMPPJID * jid=[XMPPJID jidWithString:self.fromJid];        //初始化消息體    XMPPMessage * message=[XMPPMessage messageWithType:@"chat" to:jid];    [message addBody:self.ketf.text];        //發送消息    [delgate.stream sendElement:message];        //將消息置空    self.ketf.text=nil;    return YES;}

 

  想要了解更多內容的小伙伴,可以點擊查看源碼,親自運行測試。

  疑問咨詢或技術交流,請加入官方QQ群:JRedu技術交流 (452379712)

 

作者:杰瑞教育
出處:http://www.49028c.com/jerehedu/ 
本文版權歸煙臺杰瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲xxx大片| 国产精品一区二区久久精品| 97精品欧美一区二区三区| 精品欧美一区二区三区| 久久影视三级福利片| 91国偷自产一区二区三区的观看方式| 狠狠色狠色综合曰曰| 91在线色戒在线| 国产成人精品免费久久久久| 91大神福利视频在线| 欧美日韩日本国产| 久久精品99久久香蕉国产色戒| 亚洲男人av在线| 国模叶桐国产精品一区| 久久久久久久影院| 久久久久久久久91| 2023亚洲男人天堂| 国产精品入口夜色视频大尺度| 日韩av在线直播| 粗暴蹂躏中文一区二区三区| 高清一区二区三区日本久| 日韩av中文字幕在线| 欧美激情中文字幕乱码免费| 欧美一级高清免费播放| 一区二区亚洲欧洲国产日韩| 久久久伊人欧美| 午夜精品国产精品大乳美女| 欧美高清在线观看| 国产综合久久久久久| 日韩中文字幕久久| 日韩一区av在线| 国内精品伊人久久| 欧美日韩亚洲一区二区| 国产精品一区专区欧美日韩| 日日骚久久av| 精品成人av一区| 成人午夜两性视频| 国产日韩欧美日韩大片| 91精品一区二区| 欧美一乱一性一交一视频| www.欧美三级电影.com| 亚洲国模精品私拍| 欧美成人精品不卡视频在线观看| 欧美日韩电影在线观看| 美女999久久久精品视频| 免费av在线一区| 国产不卡av在线| 国产91精品高潮白浆喷水| 九九热这里只有精品6| 一区二区三区动漫| 中文字幕9999| 国产精品视频不卡| 91九色精品视频| 欧美日韩一区免费| 日韩av影片在线观看| 日韩风俗一区 二区| 国产成人短视频| 日韩久久午夜影院| 亚洲成人动漫在线播放| 2021久久精品国产99国产精品| 少妇精69xxtheporn| 色偷偷91综合久久噜噜| 国产精品久久一区主播| 国产欧美在线观看| 夜夜嗨av色综合久久久综合网| 69久久夜色精品国产69乱青草| 欧美激情综合色综合啪啪五月| 国产精品视频自在线| 狠狠色狠狠色综合日日小说| 国产一区二区三区在线观看网站| 欧美激情手机在线视频| 日韩av片电影专区| 日韩在线国产精品| 国产精品男人的天堂| 久久综合久久88| 久久色免费在线视频| 亚洲有声小说3d| 久久99精品久久久久久噜噜| 国产精品wwwwww| 欧美裸体男粗大视频在线观看| 精品国产一区二区三区久久狼5月| 国产一区二区在线免费视频| 欧美成人在线免费视频| 国产精品久久久久久超碰| 国产精品自产拍在线观看中文| 日韩欧美国产中文字幕| 国产精品精品久久久| 欧美大片免费看| 亚洲va男人天堂| 91精品视频在线播放| 精品久久久久久亚洲精品| 国产精品日日摸夜夜添夜夜av| 在线电影av不卡网址| 国产精自产拍久久久久久蜜| 国产精品中文字幕在线| 国产欧美精品在线| 欧美国产日韩一区二区三区| 国产成人在线精品| 欧美在线欧美在线| 亚洲精品一区久久久久久| 国产一区二区三区视频免费| 欧美肥婆姓交大片| 亚洲天堂色网站| 精品中文字幕在线2019| 日韩精品极品视频免费观看| 91精品视频大全| 国产欧美日韩最新| 欧美一级视频一区二区| xxx成人少妇69| 国产精品第一第二| 亚洲国产高潮在线观看| 欧美裸体xxxx极品少妇| 一区二区日韩精品| 色狠狠久久aa北条麻妃| 欧美激情在线一区| 午夜精品久久久久久久99热| 亚洲国产日韩欧美综合久久| 日韩在线观看免费av| 亚洲欧美综合另类中字| 久久人人看视频| 欧美老女人bb| 毛片精品免费在线观看| 欧美精品18videos性欧| 亚洲欧美精品一区| 久久夜精品va视频免费观看| 久久久久国色av免费观看性色| 亚洲一区二区三区香蕉| 国产精品视频精品视频| 日韩精品视频中文在线观看| 欧美专区国产专区| 亚洲欧美日韩久久久久久| 免费97视频在线精品国自产拍| 91国自产精品中文字幕亚洲| 成人性生交xxxxx网站| 欧美专区中文字幕| 久久综合伊人77777尤物| 欧美精品精品精品精品免费| 日韩精品在线电影| 不卡在线观看电视剧完整版| 国产香蕉精品视频一区二区三区| 91久久综合亚洲鲁鲁五月天| 精品自在线视频| 日本欧美一二三区| 国产精品久久久久久久久男| 最近更新的2019中文字幕| 欧美精品18videos性欧| 成人免费淫片aa视频免费| 伊人久久久久久久久久久| 欧美一区视频在线| 国产91在线播放九色快色| 久久九九精品99国产精品| 欧洲中文字幕国产精品| 国产精品久久久久久久久久久新郎| 有码中文亚洲精品| 日韩av综合网| 亚洲午夜国产成人av电影男同| 欧美在线性爱视频| 久久亚洲精品小早川怜子66| 中文字幕在线精品| 久久亚洲精品小早川怜子66| 欧美国产日韩一区二区三区| 国产精品伦子伦免费视频| 欧美高清videos高潮hd| 日韩精品中文字幕久久臀|