【问题标题】:How to send message using XMPP Framework如何使用 XMPP 框架发送消息
【发布时间】:2011-05-18 12:13:01
【问题描述】:

我正在 iphone 中使用 XMPP 框架创建一个聊天应用程序。我可以收到消息,但我无法发送消息。谁能给我解决方案?

【问题讨论】:

    标签: objective-c xmpp xmppframework


    【解决方案1】:

    试试这个:

    XMPPUserCoreDataStorage *user = [[self fetchedResultsController] objectAtIndexPath:indexPath];
    
    NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
    [body setStringValue:strSendMsg];
    
    NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
    [message addAttributeWithName:@"type" stringValue:@"chat"];
    [message addAttributeWithName:@"to" stringValue:[user.jid full]];
    [message addChild:body];
    
    [[self xmppStream] sendElement:message];
    

    【讨论】:

      【解决方案2】:
      - (void)sendMessage:(NSString *)msgContent
      {
      
          NSString *messageStr = textField.text;
      
          if([messageStr length] > 0)
          {
              NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
              [body setStringValue:messageStr];
      
              NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
              [message addAttributeWithName:@"type" stringValue:@"chat"];
              [message addAttributeWithName:@"to" stringValue:[jid full]];
              [message addChild:body];
      
              [xmppStream sendElement:message];
      
      
      
          }
      }
      

      在你的chatViewcontroller中使用上面的代码..它对我来说很好。

      【讨论】:

      • 您的应用程序是否断开连接 - 当我将值传递给发送元素时,状态对我来说已断开连接 - 您知道如何解决它吗?
      • @iphone Fun: 你的问题对我来说不是很清楚..你可以在你的班级中添加 - (void)xmppStreamDidDisconnect:(XMPPStream *)sender ,这会在你的聊天断开连接时通知你网络。
      • 太棒了..!为我工作
      【解决方案3】:

      如果您使用的是 xmpp iPhone 示例应用程序...您可以使用以下内容,它应该可以帮助您入门:

      NSString *msgText = @"test reply";
      
      XMPPMessage* msg = [[XMPPMessage alloc] initWithType:@"chat" to:[XMPPJID jidWithString:displayName]];
      [msg addBody:msgText];
      
      [_xmppStream sendElement:msg];
      

      只需将其放在他们在 xmppStream 委托方法中的警报下方

      iPhoneXMPPAppDelegate.m:

      -(void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
      

      这将自动向最初向您发送消息的 jid 发送“测试回复”

      glhf!

      【讨论】:

        【解决方案4】:

        斯威夫特 3 答案:

        let user = XMPPJID(string: "user@example.com")
        let msg = XMPPMessage(type: "chat", to: user)
        msg?.addBody("test message")
        self.xmppStream.send(msg)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-17
          • 2013-02-12
          • 1970-01-01
          • 2016-07-13
          • 1970-01-01
          • 2013-10-28
          • 2010-10-28
          • 2011-05-31
          相关资源
          最近更新 更多