解决方案构想
本文是一种解决方案构想。 如果你希望我们在内容中扩充更多信息,例如潜在用例、备用服务、实现注意事项或定价指南,请通过提供 GitHub 反馈来告知我们。
此解决方案展示如何使用库和 Azure 服务来满足自定义协作要求。 除了实时协作之外,此解决方案还支持用户在线状态。 用户可在自定义应用中协同工作,来汇集想法,实时查看何时有新想法加入、修改或删除,并避免协作会话期间发生数据冲突。
体系结构
下载此体系结构的 PowerPoint 文件。
数据流
- 应用程序使用 Microsoft Graph Toolkit 的登录组件来支持用户登录。 该登录组件使用 MSAL 提供程序,根据 Microsoft Entra ID 验证用户的凭据。
- 用户登录后,客户端 Web 应用会使用 Fluid Framework 连接到 Fluid Relay,并创建协作会话。
- 将有更多用户登录并参与到协作会话中。 Fluid Framework 会将每个客户端中发送和接收的数据进行合并,以确保同步所有用户的数据。 为确保此同步,采用了全序广播算法和最终一致性。
- 当用户继续协作时,Fluid Relay 将自动存储协作数据。
- 当有新用户加入协作会话时,每位用户的客户端都会检索先前存储的数据,并确保该用户与会话中的其他用户同步。
组件
- Fluid Framework 是一组用于分发和同步共享状态的客户端库。 通过这些库,多个客户端可使用编码模式(与用于处理本地数据的编码模式类似)同时创建和操作共享数据结构。
- Fluid Relay 是 Fluid Framework 的托管服务。 它可帮助开发人员构建实时协作体验,并在连接的 JavaScript 客户端之间实时复制状态。
- Microsoft Entra ID 是 Microsoft 基于云的标识和访问管理服务,可帮助员工登录和访问资源。
- Microsoft Graph Toolkit 是一组与框架无关的可重用的组件和身份验证提供程序,用于访问和使用 Microsoft Graph。
- Azure Static Web Apps 是一项服务,可从代码存储库自动构建全栈 Web 应用并将其部署到 Azure。
方案详细信息
协作对于业务效率和工作效率至关重要。 Microsoft Teams 等工具提供了一种通过聊天、音频和视频进行协作的绝佳方式。 通过 Word、Excel 和 PowerPoint 联机版,你可轻松地与世界各地的同事和客户协作处理各种类型的文档和电子表格。
可使用 Azure 服务为自定义应用程序添加实时协作功能,如同使用现成解决方案一样。 此解决方案展示如何使用库和 Azure 服务来满足自定义协作要求。 除了实时协作之外,此解决方案还支持用户在线状态。 用户可在自定义应用中协同工作,来汇集想法,实时查看何时有新想法加入、修改或删除,并避免协作会话期间发生数据冲突。
为满足这些要求,此解决方案使用 Fluid Framework 和 Azure Fluid Relay。 它通过使用 Microsoft Graph Toolkit 的登录组件和 Microsoft 身份验证库 (MSAL) 提供程序,针对 Microsoft Entra ID 对用户进行身份验证。
可能的用例
此解决方案适合需要构建具有以下用途的自定义应用程序解决方案的公司:
- 保护应用程序访问。
- 多名用户之间实时数据协作。
- 内置协作数据存储功能。
部署此方案
获取演示此方案的代码示例。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Dan Wahlin | 首席云开发人员
后续步骤
有关此解决方案中使用的技术的详细信息,请参阅以下文章:
- Microsoft Entra ID
- Azure Fluid Relay
- Azure Static Web Apps
- Fluid Framework
- Microsoft Graph
- Microsoft Graph Toolkit
- Fluid Framework 中的全序广播和最终一致性