xmpp 图片、音频

来源:互联网 发布:官职 知 编辑:程序博客网 时间:2024/06/10 12:33
1、添加好友:[[XMPPDELEGATE xmppRoster]addUser:[XMPPJID jidWithString:(对方的)jid] withNickname:nil];
2、同意添加:[[XMPPDELEGATE xmppRoster]acceptPresenceSubscriptionRequestFrom:(对方的)jid] andAddToRoster:YES];
3、聊天:
            //拼写xml格式的xmpp消息
            NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
            [body setStringValue:sendStr];
            
            NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
            
            //消息类型
            [message addAttributeWithName:@"type" stringValue:@"chat"];
            //消息发送者
            [message addAttributeWithName:@"from" stringValue:(自己的)jid];
            //消息接受者
            [message addAttributeWithName:@"to" stringValue:(消息接收方)jid];
            [message addChild:body];
            [[XMPPDELEGATE xmppStream]sendElement:message];
4、看大家都在问语聊、发图片怎么做。虽然我不知道XMPP直接传输语音跟图片怎么搞。但是可以用其他方式实现嘛。
       a、将图片、录制后的音频文件上传到服务器。通过3把地址传给对方嘛。
       b、直接贴代码:
             主要用到了 NSData+Base64.h 类
             1.获取音频文件路径 
             例如:
             NSURL *recordedFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:
                                               [NSString stringWithFormat: @"%.0f.%@", [NSDate timeIntervalSinceReferenceDate] * 1000.0, @"caf"]]];

             2.将音频文件转成NSData
             NSData *soundData = [[NSData alloc] initWithContentsOfURL:recordedFile];

             3.将NSData转成base64的NSString类型
             NSString *sound=[soundData base64EncodedString];
5、大家做xmpp的有木有发现xmpp文字聊天的时候,你输入一个词,比如“哈哈”会出现对应的emjo表情,当你选择这个表情的时候xmpp会先掉线,再重新链接。
     解决办法也是将他们转码嘛;
0 0
原创粉丝点击