【问题标题】:Lync 2013 UCMA WCF Web ServiceLync 2013 UCMA WCF Web 服务
【发布时间】:2014-11-11 00:49:59
【问题描述】:

我想要做的是创建一个 WCF 服务来获取用户的可用性。我已经完成了以下快速入门示例: 名称:订阅状态 http://msdn.microsoft.com/en-us/library/office/dn454835(v=office.15).aspx

我已经设法做到这一点,但我觉得这不是让用户可用性的最有效方式。

目前,我创建了一个订阅用户状态的端点,并等待响应返回,然后我得到用户的可用性。 (我正在简化它)。

不过,我最理想的做法是在不订阅用户状态的情况下快速获得用户可用性,并在我检索到可用性后立即关闭连接。

我想知道是否有人知道我可以查看的示例或他们自己实现的示例

任何建议将不胜感激

【问题讨论】:

    标签: wcf lync lync-2013 ucma


    【解决方案1】:

    您还可以进行一次性状态查询。来自 MSDN:

    如果需要对远程呈现体进行一次性呈现查询,则创建视图并将其拆除对于应用程序来说不是最佳解决方案。此外,应用程序需要等待并跟踪是否已收到所有出席信息。

    另一种方法是在端点的 PresenceServices 属性上使用 BeginPresenceQuery(IEnumerable<String>, [], EventHandler<RemotePresentitiesNotificationEventArgs>, AsyncCallback, Object)EndPresenceQuery(IAsyncResult) 方法。

    http://msdn.microsoft.com/en-us/library/office/hh383136%28v=office.14%29.aspx

    示例

    您可以像这样调用状态查询。第三个位置的null 参数是事件处理程序,当接收到出席信息时将触发,它不是必需的,因为我们处理EndPresenceQuery 的结果。你也可以传递一个事件处理程序而不关心EndPresenceQuery 的结果,这取决于你。

    endpoint.PresenceServices.BeginPresenceQuery(
        new[] { "sip:user@example.com" }, // Collection of sip addresses to query
        new[] { "state" }, // Collection of presence catrgories to query
        null, // The eventhandler to call when presence is recieved
        (ar) => {
            var result = endpoint.PresenceServices.EndPresenceQuery(ar);
            // process the recieved containers in 'result' here.              
        }, 
        null); // The state object
    

    然而,当您运行 WCF 服务以获取将被多次查询的状态时,我会说订阅状态可能比每次都执行单个查询更好。我曾经用以下逻辑构建了一个类似的系统:

    1. 在 WCF 上获取传入状态请求。
    2. 如果 WCF 服务知道此 SIP uri 存在(已订阅),则立即返回缓存的存在。
    3. 如果不知道,请订阅状态。
    4. 收到出席信息后,返回结果并将出席信息添加到缓存中。
    5. 任何时候订阅用户更新他们的状态,都会触发一个事件来更新缓存。
    6. 如果在特定时间段内未收到单个用户的在线状态查询,请取消订阅在线状态并从缓存中删除。

    这里的主要优点是,对于同一用户的状态的多个后续查询,您不必每次都查询 Lync 服务器。您的服务响应速度会快很多,而且您可以推送出席信息,而不必每次都进行轮询。

    【讨论】:

    • 谢谢,你有第一个建议的例子吗?我正在寻找很难找到的工作示例。我同意你建议的解决方案,但我想尝试第一个建议,看看效果如何。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多