用于ios的xmpp,关于发送消息

用于ios的xmpp,关于发送消息,ios,Ios,/* 如何使用xmpp协议在IOS应用程序中向指定的人发送消息,这是我的代码,但它无法工作,我猜我的方法中的参数是错误的,我不知道应该在方法中写入哪些参数,请帮助我 */ 消息模型包含 typedef enum MessageTypes { IMChat = 1, GroupChat = 2 } MessageTypes; @interface Message : NSObject @property (nonatomic, retain) NSString *text; @

/* 如何使用xmpp协议在IOS应用程序中向指定的人发送消息,这是我的代码,但它无法工作,我猜我的方法中的参数是错误的,我不知道应该在方法中写入哪些参数,请帮助我 */

消息模型包含

typedef enum MessageTypes
{
    IMChat = 1,
    GroupChat = 2
} MessageTypes;

@interface Message : NSObject

@property (nonatomic, retain) NSString *text;
@property (nonatomic, assign) MessageTypes type;
@property (nonatomic, retain) NSString *senderId;
@property (nonatomic, retain) NSString *recipientId;

@end

在您必须初始化xmmppStream并设置委托之前。仅供参考:recipientId或senderId,它应该是完整的id,如admin@domainNamelet让我知道状态。-voidsendMessage{u xmppStream=[[xmppStream alloc]init];[\u xmppStream addDelegate:self delegateQueue:dispatch\u get\u current\u queue];nsxmlement*body=[nsxmlement elementWithName:@body];[body setStringValue:textfd.text];NSXMLElement*message=[NSXMLElement elementWithName:@message];[message addAttributeWithName:@type stringValue:@chat];NSString*user=@admin;NSString*to=[NSString stringWithFormat:@%@@tp_web,user];[message addAttributeWithName:@to stringValue:to];[message addChild:body];[self.xmppStream sendElement:message];}这对我很有效。正在检查您的ID。请尝试使用iChat或Adium配置帐户,以确保您的ID正确。您需要先连接并验证您的xmpp流,然后才能发送任何消息。-voidsendMessage{u xmppStream=[[xmppStream alloc]init];[_xmppstreamadddelegate:self delegateQueue:dispatch_get_current_queue];nsxmlement*body=[nsxmlement elementWithName:@body];[body setStringValue:textfd.text];nsxmlement*message=[nsxmlement elementWithName:@message];[message addAttributeWithName:@type stringValue:@chat];NSString*user=@admin;NSString*to=[NSString stringWithFormat:@%@@tp_web,用户];[message addAttributeWithName:@to stringValue:to];[message addChild:body];[self.xmppStream sendElement:message];]您缺乏有关XMPP的基本知识。您可以从github下载,并在XMPPFramework/Xcode/iPhoneXMPP中查看示例。您将获得有关XMPP连接和身份验证的信息。之后,您可以发送聊天信息。
- (void)sendMessage:(Message *)message
{
    if(message)
    {
        NSXMLElement * msg =  [self composeMessage:message];
        [_xmppStream sendElement:msg];
    }
    else
    {
        NSLog(@"message arguments missing");
    }
}

- (NSXMLElement *)composeMessage:(Message *)msg
{
    NSXMLElement *returnValue;
    if(msg.type == IMChat)
    {
        NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
        [body setStringValue:msg.text];
        NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
        [message addAttributeWithName:@"type" stringValue:@"chat"];// IMChat
        [message addAttributeWithName:@"to" stringValue:msg.recipientId];
        [message addChild:body];
        returnValue = message;
    }
    else
    {
        NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
        [body setStringValue:msg.text] ;
        NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
        [message addAttributeWithName:@"type" stringValue:@"groupchat"];//Group Chat
        [message addAttributeWithName:@"to" stringValue:msg.recipientId];
        [message addChild:body];
        returnValue = message;
    }

    return returnValue;

}
typedef enum MessageTypes
{
    IMChat = 1,
    GroupChat = 2
} MessageTypes;

@interface Message : NSObject

@property (nonatomic, retain) NSString *text;
@property (nonatomic, assign) MessageTypes type;
@property (nonatomic, retain) NSString *senderId;
@property (nonatomic, retain) NSString *recipientId;

@end