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