【问题标题】:Message appears twice using Skype SDK chat使用 Skype SDK 聊天消息出现两次
【发布时间】:2016-08-21 00:03:21
【问题描述】:

我使用了 skype sdk Here,这是我的代码 sn-p

config.conversation.historyService.activityItems.added(function(newMsg) {
  if(typeof newMsg.direction != 'function') {} else {
    if(newMsg.direction() == 'Incoming') {
      direction = "black";
    } else if(newMsg.direction() == 'Outgoing' && newMsg.status() === "Succeeded") {
      direction = "green";
    } else {}
    $("#conversationText").append('<br/><div class="chat-user-info"><h1 class="chat-user-name">' + newMsg.sender.displayName() + '</h1><h2 class="chat-user-time">' + new Date() + '</h2></div><div class="chat-user-message"><h3 style="color:' + direction + ';">' + newMsg.text() + '</h3></div><br/>');
  }
});

但是,当消息处于待处理状态或即使失败时,它也会出现,在此之后我尝试将消息放入其中,但它只出现在另一边,而不是我的。

Github 相关问题Here

【问题讨论】:

    标签: javascript asynchronous skype skype-for-business


    【解决方案1】:

    为什么要添加typeof newMsg.direction != 'function' 条件,它是否纠正了某些问题? 您的代码的行为在这里似乎是正确的,因为仅当消息是“传出”而不是“成功”时才会附加消息。 您是否有原始解决方案的任何错误或日志是

    conversation.historyService.activityItems.added(function(message) {
    if (message.type() == 'TextMessage') {
        if (message.direction() == 'Incoming' ) {
            historyAppend(XMessage(message));
        } else if (message.direction() == 'Outgoing' && message.status() === "Succeeded") {
                historyAppend(XMessage(message));
        }
    }
    });
    

    【讨论】:

    • 感谢您的回复 .... 我写了这个条件,因为它两次侦听事件,一次用于 baseModel 对象,一次用于 Message 对象...如果不处理,其中一个会抛出异常
    • 好的,我没有看到那种类型的错误,但我认为他们已经稍微改变了这个例子。您是否尝试使用我的解决方案打印一些日志?尝试每次打印状态和方向
    • 抱歉迟到了,我测试了你的代码实际上消息状态可能是“待处理”-“待处理”然后它“成功”或“失败”在成功或失败的情况下它被发送到另一个边。所以它不能写在我这边,而是送到那里。
    • 尝试在条件里面的控制台打印一些东西,看看它是否与消息的显示无关。你也查过案子吗?
    【解决方案2】:

    无论 message.direction() 的值如何,我都通过先附加消息的解决方法解决了这个问题

    【讨论】:

      猜你喜欢
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 2015-12-19
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多