2016-09-03 3 views
2

나는빠른 언어로 XMPPStream XMPP 프레임 워크를 사용하여 이미지를 보내는 방법은 무엇입니까?

포드 내 데모 프로젝트에서 'XMPPFramework'

을 사용했다. 나는 연결을 만들고 대리자 메서드를 적절하게 배치했습니다.

는 내가 이미지를 전송하는

func xmppStream(sender: XMPPStream!, didReceiveMessage message: XMPPMessage!) { 

messageStr = messageStr + message.body() 
print("Did receive message \(messageStr)") 

} 

지금 내가 원하는 일을하고 내가 끝을 수신에

let msg = XMPPMessage(type: "chat", to: senderJID) 
msg.addBody(message) 
self.appDelegate.xmppStream.sendElement(msg) 

를 사용하여 메시지를 전송하고, 여기서 간단한 채팅을했다. 나는 객관적으로 아래에서와 같이 첨부 파일을 사용하여 몇 가지 코드를 찾아 보았습니다.

NSData *dataF = UIImagePNGRepresentation(SendImage); 
     NSString *imgStr=[dataF base64Encoding]; 

     NSXMLElement *body = [NSXMLElement elementWithName:@"body"]; 
     [body setStringValue:messageStr]; 

     NSXMLElement *imgAttachement = [NSXMLElement elementWithName:@"attachment"]; 
     [imgAttachement setStringValue:imgStr]; 

     NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; 
     [message addAttributeWithName:@"type" stringValue:@"chat"]; 
     [message addAttributeWithName:@"to" stringValue:chatWithUser]; 
     [message addChild:body]; 
     [message addChild:imgAttachement];  

     [self.xmppStream sendElement:message]; 

위의 Objective-C 코드에서 변환 한 내 Swift 코드입니다.

var dataF = UIImagePNGRepresentation(image) 
     var imgStr = dataF.base64Encoding() 

     let root = NSXMLElement(name: "find_sites") 

     var body = NSXMLElement.elementWithName("body") 
     body.stringValue = messageStr 
     var imgAttachement = NSXMLElement.elementWithName("attachment") 
     imgAttachement.stringValue = imgStr 
     var message = NSXMLElement.elementWithName("message") 
     message.addAttributeWithName("type", stringValue: "chat") 
     message.addAttributeWithName("to", stringValue: senderJID) 
     message.addChild(body) 
     message.addChild(imgAttachement) 
     self.xmppStream.sendElement(message) 

내가 스위프트에이 코드를 변환하면, 나는 그것을 달성 할 수있는 방법, 내가 무엇을해야하는지, NSXMLElement에 오류가 발생하고있다.

나는 또한 XMPPStream class을 읽었으며 아무 것도 생산적이라고 찾지 못했습니다.

감사합니다.

+0

어떤 오류가 발생합니까? – Shubhank

+0

해결되지 않은 식별자 'NSXMLElement'사용. 또한 Swift로 코드를 변경 했으므로 문제의 코드를 신속하게 추가 할 수있게되었습니다. –

+0

'XMPPMessage' 클래스를 사용해보세요 – Shubhank

답변

2

NSXMLElement 대신 DDXMLElement를 사용할 수 있습니다.

let body = DDXMLElement.element(withName: "body") as! DDXMLElement 
    let imageAttachement = DDXMLElement.element(withName: "attachment", stringValue: imageStr!) as! DDXMLElement 

    let message = DDXMLElement.element(withName: "message") as! DDXMLElement 
    message.addAttribute(withName: "type", stringValue: "chat") 
    message.addAttribute(withName: "to", stringValue: receiver) 
    message.addChild(body) 
    message.addChild(imageAttachement) 
+0

이 코드를 사용하여 이미지를 보내 왔지만 어떻게 xmpp 데이터를 읽을 수 있습니까? –