【发布时间】:2020-03-19 05:24:19
【问题描述】:
我目前正在使用 Microsoft Graph API(测试版)来获取在线状态例如使用 GraphClient 在 spfx webpart(使用 React)中在线、离开等:
this.props.context.msGraphClientFactory.getClient().then(async (client: MSGraphClient) => {
let response = await client
.api('/communications/getPresencesByUserId')
.version('beta')
.post(postData)
console.log("Communication API Response: "+ response);
this.usersWithPresence = response.value;
});
这工作正常,但要获取用户的更新状态,我必须刷新页面,以便进行另一个 API 调用并更新存在状态。我想像在 'Skype' 中那样做。
我需要的是关于我可以申请获得的机制的建议 实时更新用户的存在状态,因此一旦用户 更新这反映在我的 webpart 中的状态。我知道我可以使用
setInterval或setTimeout函数请求在线状态 在特定的时间间隔之后,但出于学习目的,我不想 一次又一次地以这种方式请求 API,而不是更新 像这样来自服务器的消息是使用 web sockets 发生的。网络如何 这个API可以应用socket之类的东西吗?
欢迎您提出建议。
【问题讨论】:
标签: javascript reactjs sharepoint websocket microsoft-graph-api