【发布时间】:2023-03-22 00:05:01
【问题描述】:
我有一个应用程序,它依赖于服务器上的专用 Lync 客户端来管理临时 MeetNow 房间。
Lync 会在 15 分钟不活动后自动关闭对话。我通过发送“取消传输”消息找到了a blog describing a way to surreptitiously keep the conversation alive,但该解决方案使用 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>和style="display: none;"- 这可以使对话保持活跃,但是,当然,这显示一个空来自应用用户的消息
我非常希望避免发送在 MeetNow 会议室中显示的实际消息(即使它显示的只是应用用户的姓名)。
有什么想法吗?
【问题讨论】:
标签: c# lync-client-sdk