我正在使用此Gist from Tom Morgan来测试发送即时消息。我已登录到我的Lync 2013客户端,当我启动它的应用程序时,我立即得到我的测试消息,假设我确认/点击弹出通知接受新的对话。
但是,如果我没有点击弹出窗口,则在BeginSendInstantMessage
被触发之前似乎有一个随机的20-30秒延迟,并且会显示该消息。
如果我关闭visual studio应用程序,但是打开对话窗口,然后重新运行应用程序,也会出现此延迟。它不会向我显示此次弹出的新对话,即使现有的对话窗口具有焦点,但在消息出现之前仍有30秒的延迟。
是否可以更改此行为,以便立即传递我的消息?
谢谢你, FLO
答案 0 :(得分:0)
首先,感谢名字检查要点 - 很高兴有人在使用它!
我认为你所描述的内容是Lync的工作原理 - 即使你从另一台Lync客户端发送它,你也会看到这30秒,如果忽略弹出窗口,那么在此之后仍然会传递消息。
我认为它的原因是您可能登录了许多不同的设备(不同的端点)。 Lync会将您的消息发送到所有端点,然后等待查看您的操作。如果您接受特定端点上的消息,则该对话的所有未来消息都将在那里。但是,如果您忽略它,最终Lync客户端将自动接受您的消息。
此行为(如果我记得)在Lync 2010中略有不同,客户端会在显示弹出窗口时立即自动接受该消息。
当您打开对话窗口并重新运行应用程序时发生的事情是您遇到了两件事情。第一件事是你正在创建一个全新的对话,有一个新的对话ID等等.Lync客户端正在做“啊,新的对话,让我们等一下,看看其他端点是否可以接收它”。然而,与此同时,Lync客户端“聪明”到足以猜测您可能并不意味着与同一个收件人进行两次会话,并将您的会话分组到一个窗口中。这就是为什么你没有得到弹出窗口(Lync客户端对你的对话进行分组),但确实得到延迟(Lync客户端处理新的对话),然后消息到达同一个窗口。(Lync客户端对你的对话进行分组)。
这是一个特殊的边缘情况,客户端处理不好,但我认为没有任何好办法解决它。