用Teams Live Share构建协作型使用

微软正在通过为Teams开发者供给一个新的使用渠道来扩大对其Fluid Framework实时协作东西的拜访

Teams一直是微软生产力渠道的一个重要组成部分,但COVID-19的大流行将它推到了雷德蒙议程的首位。它的重要性变得很明显,因为微软和它的大部分客户群首先从办公室转移到忽然在家作业,现在正在适应一种更有计划的办法,成为家庭/办公室混合作业。

虽然对Teams的关注首要会集在它的会议和协作功用上,但它与竞争对手的首要区别是树立在微软作为渠道公司的传统上。从一开端,它便是一个构建使用程序的当地,也是交流和协作的当地,它供给了供给协作、近乎实时的使用程序所需的大部分支架和管道,并作为业务线体系的另一个终端,作为低代码作业流程的一部分,掌管许多小使命,这是现代作业的一部分和组成部分。

介绍一下Teams Live Share

一旦你以为它是另一个渠道,看到Teams在微软的Build大会上获得自己的轨迹就不奇怪了。本年的活动也不例外,有几个重要的公告,包含新的JavaScript SDK的普遍可用性和一些重要的API发布。但是,最有趣的或许是一套新的东西,它将团队本身的协作和会议功用与微软的Fluid Framework实时使用开发渠道合并。

其成果是Live Share SDK,这是一种树立协作使用的方法,将会议与使用混合在一起,能够在许多不同的用户和设备上同享状态。咱们现已通过Visual Studio的Live Share协作编码看到了这种办法所供给的功用。不同渠道上的不同修改能够同享一个修改空间,将结对编程扩展到办公室之外。

Teams的Live Share SDK让你能够运用微软的Fluid Framework在多对多的网状结构中的实例之间传递状态。然后,你能够将你的代码和会议包裹在一个Fluid容器中,用最少的代码添加协作功用。这样你就能够把Teams的东西和你自己的东西一起运用,例如,在混合会议检查中同享代码和线框,让会议室里的人在大屏幕上进行注释,而家里的人则运用自己的屏幕。互动是近乎实时的,并在一切用户之间同享,由Teams操控会议的语音和视频部分。像微软最近的许多东西相同,它是开源的,能够在GitHub上找到。

从Fluid到Live,然后再回来

假如你一直在测验运用Fluid结构,那么Live Share SDK的大部分内容都会很熟悉。Live Share是一套JavaScript包,通过npm或Yarn进行装置,一起依靠Teams JavaScript和Fluid Framework包。假如这些都没有装置,装置SDK会装置它们。假如你现已有了它们,你将需求保证你有正确的版别以避免问题。现在,您需求2.0.0-experimental.0版别的Teams JavaScript包和0.59.0的Fluid Framework。

在预览的这个阶段还有其他限制。最大的限制可能是实时同享只适用于预订的会议;你不能在其他类型的会议中以暂时的方法加入。一切与会者都需求参加约请;在他们获得拜访实时同享使用程序之前,他们必须承受会议约请并将其添加到他们的日历中。希望这只是一个预览问题,因为运用Visual Studio Live Share进行自发协作的能力是其优势之一,并且很简略看到相似的办法可能有助于将电话变成一个同享的作业空间。

构建一个实时同享使用程序

Teams Live Share使用程序与其他Team使用程序相同。因为它还不是Teams开发者东西的一部分,你需求在使用程序清单中手动添加额外的权限,以便运用新功用,首先是你的使用程序的主机URL的规模和上下文,支撑带有会议面板和舞台的群聊。然后你需求为即时同享会话和使用程序的会议阶段添加托付权限。随着渠道的成熟,它应该成为Teams SDK的一部分,并支撑主动生成清单。

你现在能够开端在你的代码中添加Live Share功用。使用程序需求加入一个会议,所以使用程序的每个实例将从每个用户的Teams会话中的会议开端。代码将需求初始化Teams SDK,然后创建一个Fluid Framework容器来处理客户端之间的同步,设置同步内容所需的分布式数据结构。Fluid Framework有许多不同的数据结构,请挑选您的使用程序所需的结构。

最有可能的是SharedMap,它是一个根本的JSON对象的键值存储。运用SharedMap,你要发送,比方说,在同享图画上制作的坐标。这能够与SharedString结构相结合,用于协作式文本修改。这些流体结构的数据结构能够在会议之间持续存在,构建会后报告,并为与会者供给离线运用的内容。

Live Share带来了一些Fluid Framework中没有的新功用,它称之为Ephemeral Objects。这是一种新形式的同享对象,不存储在Fluid容器中,但仍可在您的使用程序中拜访。你能够用这些对象来办理用户的存在,或许添加演示东西,比方一个指针到一个会话。这些同享对象运用相同的实时Fluid东西,但它们在会议之后并不存在,除非你明确地将其内容保存到Fluid数据结构中。

一个有用的功用是EphemeralEvent数据结构。它能够在会议中的客户端之间发送音讯,例如,显现是否有人加入或离开。请保证添加代码来监听通知并异步运转。事实上,用于Fluid数据结构和Live Share的时间短结构的大部分代码都需求异步运转,因为你的代码是对会议中随时可能发生的事情的来源和呼应。

在Live Share中处理媒体

虽然Live Share或许最适合用来包装根据文本的内容,运用Fluid Framework的协作东西,但它在一个单独的包中供给了一组扩展,支撑媒体同步。这添加了一个单独的时间短对象来支撑媒体操控和状态,以及在HTML媒体元素中同步播映的方法。假如你在会议上做视频演示,你能够有一个Live Share使用,让被批准的用户暂停播映,以进行谈论或对视图进行注释。

Live Share还能够给咱们供给一种有用的方法,运用Teams来播送现场活动,因为它有东西让用户暂停流媒体,并在必要时越过。假如你运用Live Share来掌管训练,这里有一个有趣的选项。你能够让用户暂停回答问题或发表谈论,只有在一切用户恢复时才恢复播映。像这样的和谐是一个很方便的功用,因为它能够保证没有人被落下,每个人的定见都能被听到。

Visual Studio中的实时同享是一个强大的东西,所以很高兴看到相似的功用出现在Teams中。但是,重要的是要认识到,树立实时协作东西并不简略,虽然Teams Live Share简化了创建和办理同享数据结构,但你依然需求树立一套异步事情处理东西,以保证同享数据的改变反映在用户体会中。有了像Fluid Framework这样的东西,咱们很想全身心地投入,但这可能会导致杂乱和无法办理的事情解析代码。

那么,你应该如何去运用Teams Live Share?最好从一个简略的使用开端:同享一个易于了解的数据结构的东西,比方一个看板,带有文字和音频谈天以及根本的修改功用,供一个混合团队运转每日站立会议,以项目经理能够快速看到和了解项目进展情况的方法办理项目积压。

一旦你了解了Live Share是如何通过单一的同享数据结构作业的,你就能够开端扩展你的使用程序,添加新的功用来支撑新的需求并呼使用户的要求。其成果应该是在会议室屏幕和个人桌面上运转良好的代码,协助弥合混合作业的距离。现在是微软推出这种东西的正确机遇。现在咱们需求树立利用这些新功用的团队代码。