我有一个应用程序,它依赖于位于服务器上的专用 Lync 客户端来管理临时 MeetNow 房间。
Lync 会在 15 分钟不活动后自动关闭对话。我发现了一个博客,它描述了一种通过发送“取消传输”消息来秘密保持对话活动的方法,但该解决方案使用 UCMA,而我只有 2013 Lync Client SDK 可用。
它的完成方式(基本上)是:
var contentType = new System.Net.Mime.ContentType("text/x-msmsgsinvite");
var s = @"Application-Name: File Transfer\r\nInvitation-Command: CANCEL\r\nInvitation-Cookie: 12345\r\n");
byte[] htmlBytes = Encoding.UTF8.GetBytes(s);
Flow.BeginSendInstantMessage(contentType, htmlBytes, EndSendInstantMessage, Flow);
但是,再次,这是使用 UCMA。Lync 客户端 SDK 的工作方式并不完全相同。
我需要使用对话模式来发送消息,并且我无法将内容类型设置为,text/x-msmsgsinvite
因为它使用InstantMessageContentType
,Enum
其中唯一可用的内容类型是:Invalid, PlainText, Html, RichText, Gif, Ink, Unknown
。
我使用 2013 Client SDK 所做的尝试:
(首先,我确保Modality.State
已连接 - 确实如此)。
我尝试发送一条空消息 - 收到一个异常,说
Value does not fall within the expected range
. 我可能会误解这一点,但我认为它的意思是空字符串不会产生消息。我尝试仅发送一条内容类型设置为的随机消息
Invalid
- 收到消息异常Unknown InstantMessageContentType. Type is Invalid
。(实际上并没有期待这个成功)我尝试发送一条内容类型设置为
Html
的消息,其中该消息包含一个<div>
withstyle="display: none;"
- 这可以使对话保持活跃,但是,当然,这会显示来自 Applicative User 的空消息
我非常希望避免发送在 MeetNow 房间中显示的实际消息(即使它显示的只是应用用户的名称)。
有任何想法吗?