0

我正在使用Tom Morgan 的这个 Gist来测试发送 IM。我已登录到我的 Lync 2013 客户端,当我启动它工作的应用程序时,假设我确认/单击弹出通知以接受新对话,我会立即收到我的测试消息。

但是,如果我不单击弹出窗口,则在BeginSendInstantMessage触发并显示消息之前似乎有一个随机的 20-30 秒延迟。

如果我关闭 Visual Studio 应用程序,但保持对话窗口打开,然后重新运行应用程序,也会存在此延迟。这次它不会向我显示新的对话弹出窗口,即使现有的对话窗口有焦点..在消息出现之前仍有 30 秒的延迟。

可以更改此行为,以便立即传递我的消息吗?

谢谢你,弗洛

4

1 回答 1

0

首先,感谢您检查 Gist 的名称 - 很高兴有人在使用它!

我认为您所描述的内容内置于 Lync 的工作方式中 - 即使您从另一个 Lync 客户端发送此 30 秒,如果您忽略该弹出消息,该消息仍会在该时间之后传递。

我认为原因是您可能在许多不同的设备(不同的端点)上登录。Lync 会将您的消息发送到所有端点并等待查看您的操作。如果您接受特定端点上的消息,则该对话的所有未来消息都将发送到那里。但是,如果您忽略它,Lync 客户端最终还是会自动接受您的消息。

这种行为(如果我记得的话)在 Lync 2010 中略有不同,客户端会在显示弹出窗口时立即自动接受消息。

当您将对话窗口打开并重新运行应用程序时,您会陷入两件事之间。第一件事是您正在创建一个全新的对话,具有新的对话 ID 等。Lync 客户端正在执行它的“啊,新对话,让我们拭目以待,看看其他端点是否接听它”。然而,与此同时,Lync 客户端“聪明”到足以猜测您可能不是要与同一个收件人进行两次对话,并将您的对话组合到一个窗口中。这就是为什么您没有收到弹出窗口(Lync 客户端对您的对话进行分组)但确实收到延迟(Lync 客户端处理新对话),然后消息到达同一窗口。(Lync 客户端对您的对话进行分组)。

这是一个特殊的边缘案例,客户不能很好地处理它,但我认为没有什么好的方法可以解决它。

于 2015-05-21T17:55:42.820 回答