读书人

[iPhone高级] 基于XMPP的IOS聊天客户端

发布时间: 2012-07-28 12:25:13 作者: rapoo

[iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端二)

接上一章的,这一章我们着重介绍XMPP

为了方便程序调用,我们把XMPP的一些主要方法写在AppDelegate中

[iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端2)

在AppDelegate.m下这几个方法为:


[iPhone高级] 基于XMPP的IOS聊天客户端程序(IOS端2)

定义完两个委托,我们就要在不同的Controller中实现这两个委托了

在好友Controller中实现<KKChatDelegate>并写入如下方法

- (IBAction)sendButton:(id)sender {        //本地输入框中的信息    NSString *message = self.messageTextField.text;        if (message.length > 0) {                //XMPPFramework主要是通过KissXML来生成XML文件        //生成<body>文档        NSXMLElement *body = [NSXMLElement elementWithName:@"body"];        [body setStringValue:message];                //生成XML消息文档        NSXMLElement *mes = [NSXMLElement elementWithName:@"message"];        //消息类型        [mes addAttributeWithName:@"type" stringValue:@"chat"];        //发送给谁        [mes addAttributeWithName:@"to" stringValue:chatWithUser];        //由谁发送        [mes addAttributeWithName:@"from" stringValue:[[NSUserDefaults standardUserDefaults] stringForKey:USERID]];        //组合        [mes addChild:body];                //发送消息        [[self xmppStream] sendElement:mes];                self.messageTextField.text = @"";        [self.messageTextField resignFirstResponder];                NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];                [dictionary setObject:message forKey:@"msg"];        [dictionary setObject:@"you" forKey:@"sender"];        [messages addObject:dictionary];                //重新刷新tableView        [self.tView reloadData];            }        }
上面都加了注释,大家应该能明白,接下来还有一个章节,我们会对发送的消息在界面进行美化,跟苹果自带的消息一样。谢谢大家有耐心看完,我这个人比较不喜欢打字,所以有的地方注释比较少,希望大家别介意,还有希望大家能够多多支持, 以后会接着介绍XMPP文件传输之类的内容。

2楼d40373920昨天 20:32
好厉害 最近正需要这个代码 坐等下一章····等着mes里面的to取出来后 怎么发给那个人····
1楼d40373920昨天 20:23
有点迫不及待了 可以发一份源码先学习一下么?derekhui@foxmail.com,有机会多多交流····

读书人网 >操作系统

热点推荐