zoukankan      html  css  js  c++  java
  • xmpp这一段蛋疼的 坑,

    1,注释的地方 如果放出来,会 出现发送两遍消息的错觉,

    2,并且消息的 id有一模一样的,如果 刚好用这个做 id的话 会出现 主键约束,而 离线消息只能插入一条的情况,

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

    {

        TTLog(@"receive message -----------------%@",message);

        IMMessageInfo *iMessageInfo = [[IMRootManagershareManager]xmppMessageToChatMessage:message stateFlag:RECEIVE_SUCCESS];

        [[DBcontrolsharedDBControl] saveIMMessage:iMessageInfo];

        

        NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:message, IM_MESSAGE_BODY, nil];

        [[NSNotificationCenterdefaultCenter] postNotificationName:IM_MESSAGE_RECEIVEobject:selfuserInfo:userInfo];

        

        if([UIApplicationsharedApplication].applicationState == UIApplicationStateBackground){

            [selfpushLocalNotification:message];

        }

    //    if([message hasReceiptRequest]){

    //        XMPPMessage *responseMessage = [message generateReceiptResponse];

    //        NSXMLElement *body = [NSXMLElement elementWithName:@"body"];

    //        [body setStringValue:@"r"];

    //        [responseMessage addChild:body];

    //        [xmppStream sendElement:responseMessage];

    //    }

        if ([message isChatMessageWithBody]) {

            NSString *messageID = [ChatVoiceRecorderVC getCurrentTimeString];

            [message addAttributeWithName:@"id" stringValue:messageID];

            TTLog(@" message with id-----------------%@",message);

     

          

        }

       

    }

  • 相关阅读:
    《计算机图形学-基于3D图形开发技术》读书笔记
    【转】OpenGL和D3D 矩阵对比
    【转】D3D中详细拾取操作
    根据点坐标改变字体显示位置
    静态常量和常量在类中的初始化
    MFC单文档中使用D3D9
    单文档切换OpenGL视图
    超大地形的处理 (Terrain Visualization)【转自知乎】
    又出现这种问题。。。
    属性
  • 原文地址:https://www.cnblogs.com/guligei/p/3645138.html
Copyright © 2011-2022 走看看