简体   繁体   English

Lync 2013 SDK ..强制IM传递没有延迟吗?

[英]Lync 2013 SDK.. force IM delivery without delay?

I am using this Gist from Tom Morgan to test sending IM's. 我正在使用Tom Morgan的Gist测试发送IM。 I'm logged into my Lync 2013 client and when i start the app it works, i get my test message immediately assuming i acknowledge/click on the pop-up notification to accept the new conversation. 我已登录Lync 2013客户端,当我启动该应用程序时,如果我确认/单击弹出通知以接受新对话,则我会立即收到测试消息。

If however i don't click the pop-up, there seems to be a random 20-30 second delay before the BeginSendInstantMessage is fired and the message appears. 但是,如果我不单击弹出窗口,则在BeginSendInstantMessage被触发并出现消息之前,似乎会有20-30秒的随机延迟。

This delay also exists if i close the visual studio app, but leave the conversation window open and then re-run the app. 如果我关闭Visual Studio应用程序,但保持对话窗口处于打开状态,然后重新运行该应用程序,则也存在此延迟。 It won't show me the new conversation pop-up this time and even though the existing conversation window has focus.. there is still a 30 second delay before the message appears. 即使现有的对话窗口已聚焦,这一次也不会显示新的对话弹出窗口。消息出现前还有30秒的延迟。

Can this behavior be changed so my message is immediately delivered ? 可以更改此行为,以便立即发送我的消息吗?

Thank you, fLo 谢谢你

Firstly, thanks for name-checking the Gist - glad someone is using it! 首先,感谢您检查Gist的名称-很高兴有人使用它!

I think what you're describing is built into how Lync works - this 30 second is something you see even if you send it from another Lync client, if you ignore the popup the message is still delivered after that time. 我认为您所描述的内容已建立在Lync的工作方式中-即使您从另一个Lync客户端发送该消息,这30秒还是您会看到的,如果您忽略该弹出窗口,则消息在此时间之后仍会传递。

I think the reason for it is that you might be signed in on many different devices (different endpoints). 我认为其原因是您可能在许多不同的设备(不同的端点)上登录。 Lync will signal your message to all endpoints and wait to see what you do. Lync将向所有终结点发送您的消息,并等待您进行操作。 If you accept the message on a specific endpoint, then all future messages for that conversation will go there. 如果您在特定端点上接受该消息,则该对话的所有将来消息都将发送到该端点。 However, if you ignore it, eventually the Lync client will auto-accept your message anyway. 但是,如果您忽略它,最终Lync客户端将始终自动接受您的消息。

This behaviour was (if I recall) subtly different in Lync 2010, where the client would automatically accept the message immediately when showing the popup. 这种行为(如果我还记得的话)在Lync 2010中有细微的不同,在客户端中,当显示弹出窗口时,客户端将立即自动接受消息。

What's happening when you leave the conversation window open and re-run the app is that you're getting stuck between two things. 当您打开对话窗口并重新运行该应用程序时,会发生两种情况。 The first thing is that you're creating a brand-new conversation, with a new conversation ID etc etc. The Lync client is doing its "ah, new conversation, lets wait and see if other endpoints pick it up". 第一件事是您要创建一个全新的对话,并带有新的对话ID等。Lync客户端正在执行“啊,新的对话,让我们拭目以待,看看其他端点是否接听了它”。 At the same time however, the Lync client is "clever" enough to guess that you probably don't mean to have two conversations with the same recipient, and is grouping together your conversations into one window. 但是,与此同时,Lync客户端足够“聪明”,以至于您可能不打算与同一收件人进行两次对话,而是将对话分组到一个窗口中。 That's why you don't get the popup (Lync client grouping your conversation) but do get the delay (Lync client handling new conversations), and then the message arriving in the same window.(Lync client grouping your conversation). 这就是为什么您没有得到弹出窗口(Lync客户端将您的对话分组),却得到了延迟(Lync客户端处理新的对话),然后消息到达了同一窗口。(Lync客户端将对话分组)。

It's a particular edge case which the client doesn't deal particularly well with, but I don't think there is any nice way of fixing it. 这是客户无法很好地处理的特殊情况,但是我认为没有任何好的方法可以解决它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM