zoukankan      html  css  js  c++  java
  • xmpp开发教程(五)-收发消息

    这里主要是指用户的状态更新,收到消息,发送消息。

    首先给出核心代码

    用户上下线的通知

     1 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     2 #pragma mark ReceivePresence
     3 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     4 
     5 - (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence {
     6     NSString *presenceType = [presence type];
     7     NSString *presenceFromUser = [[presence from] user];
     8     NSLog(@"presenceFromUser:%@",presenceFromUser);
     9     NSLog(@"presenceType:%@",presenceType);
    10     if (![presenceFromUser isEqualToString:[[sender myJID] user]]) {
    11         if ([presenceType isEqualToString:@"available"]) {
    12             //
    13         } else if ([presenceType isEqualToString:@"unavailable"]) {
    14             //
    15         }
    16     }
    17 }

    接收消息

     1 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     2 #pragma mark ReceiveMessage
     3 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     4 
     5 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message {
     6     NSString *messageBody = [[message elementForName:@"body"] stringValue];
     7     NSLog(@"body:%@",messageBody);
     8     NSString *replyMessage=[NSString stringWithFormat:@"replay%@",messageBody];
     9     if(![messageBody isEqual:NULL])
    10        [self sendMessage:replyMessage toUser:@"fengyun"];
    11 }

    发送消息

     1 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     2 #pragma mark sendMessage
     3 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     4 
     5 - (void)sendMessage:(NSString *) message toUser:(NSString *) user {
     6     NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
     7     [body setStringValue:message];
     8     NSXMLElement *message1 = [NSXMLElement elementWithName:@"message"];
     9     [message1 addAttributeWithName:@"type" stringValue:@"chat"];
    10     NSString *to = [NSString stringWithFormat:@"%@@helloworldtekimac-mini.local", user];
    11     [message1 addAttributeWithName:@"to" stringValue:to];
    12     [message1 addChild:body];
    13     [self.xmppStream sendElement:message1];
    14 }
  • 相关阅读:
    Educational Codeforces Round 1 (C) (atan2 + long double | 大数)
    AC自动机模板
    JSP 过滤器
    JSP 动作元素
    Hibernate 拦截器
    Hibernate 批处理
    Hibernate 缓存
    单例模式数据库连接
    JavaScript限制前端页面用户表单输入
    注册页面手机验证码无跳转接收[html+js+ajax+php]
  • 原文地址:https://www.cnblogs.com/guchengfengyun/p/4049078.html
Copyright © 2011-2022 走看看