@100mslive/hms-video-store

中文文档
0.15.3发布于 2026/10/01MITTypeScriptESM + CJS构建来源已验证近 30 天下载 21.3万

@ 100mslive Core SDK ,它总结了WebRTC的复杂性,同时为数据管理提供了具有单向数据流的反应存储器

中文使用文档
文档目录7 节
  1. 安装
  2. 如何使用
  3. 框架特定包装
  4. 反应
  5. 框外支持 Redux 开发工具扩展
  6. 存储状态
  7. 存储图

100ms 网络 SDK

NPM Lint, Test and Build Bundle Size License Tree shaking

Architecture

这是核心sdk 帮助你通过100ms的活性互动。 它将它取出 数据管理的复杂性和提供 基于通量的反应性数据存储,数据只流向一个方向.

管理房间状况的复杂性不是一件微不足道的任务 并且能够迅速失控 例如,多个UI组件可能对一个 简单的数据点, 如用户是否已变音 。 哑巴行动 本身可以从UI的多处取出,甚至可以被远程取出 与会者。 地方州和不当处理行动或失踪角落案件, 状态重复等极有可能使数据相互不一致 与真相的源头脱节.

检查 SDK 心理模型 建立一个精神模型 所有的东西如何运作 和所有的SDK摘要离开.

有两件重要的东西, 存储你想要显示的东西 和动作什么 你想这样做 -

  1. 存储 - 读取数据的核心存储界面通常使用选择器. 店铺 充当与房间有关的任何数据的单一真相来源。 有两个人被曝光 函数 -
    • 获取状态( 选择器) - > 获取当前 UI 状态, 函数调用时为真
    • 订阅( 召回, 选择器) - > 订阅由您选择的状态的一部分 在选择器中通过,当部分改变时,会通知通过回调.
  2. 动作 - 调度行动的行动界面,然后可以到达 退出服务器并更新商店。 以详细文件检查接口 这里。 。 。 .

我们还为大多数常用案例提供优化和高效的选择器。 这些是 备查 此文件夹。 。 。 .

重要说明:从加入国或加入国收到的数据不可更改 接收对象被冻结,不允许其变异。 你会出错的 如果你想以任何方式改变这些数据。 商店的不可用性就是我们如何确保 以始终如一的方式反映事实.

安装

yarn add @100mslive/hms-video-store

如何使用

const hms = new HMSReactiveStore();
const hmsActions = hms.getHMSActions();
const hmsStore = hms.getStore();

const toggleAudio = () => {
    const isEnabled = hmsStore.getState(selectIsLocalAudioEnabled);
    hmsActions.setLocalAudioEnabled(!isEnabled);
}

const onSpeakerUpdate = (speaker, prevSpeaker) => {
    console.log("speaker changed from - ", prevSpeaker, ", to - ", speaker);
}

hmsStore.subscribe(onSpeakerUpdate, selectDominantSpeaker);

框架特定包装

大多数受欢迎的Javascript框架具有反应性质,并有一些 一种可以进一步简化发展的相关概念.

反应

我们提供两个钩子,一个用来为商店阅读,另一个用来采取行动. 我们提供HMS Room Provider组件,负责初始化和 将这些钩子提供给您的 UI 组件 .

function join() {
    const isConnected = useHMSStore(selectIsConnectedToRoom);
    const hmsActions = useHMSActions();

    return <>
        {
            !isConnected &&
            <Button onClick={() => hmsActions.join()}>Join</Button>
        }
    </>
}

检查更多在 反应- sdk 编辑 文档。 。 。 .

框外支持 Redux 开发工具扩展

存储状态

Store State

存储图

Store State

参见 文档 更详细的指南

版本与发布记录

@100mslive/hms-video-store 共发布 873 个版本,首次发布于 2021/05/30;过去 12 个月发布了 81 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.15.3latest2026/10/011 个月前
0.15.3-alpha.1alpha2026/10/011 个月前
0.15.3-alpha.02026/09/291 个月前
0.15.22026/09/221 个月前
0.15.2-alpha.62026/09/221 个月前
0.15.2-alpha.52026/09/221 个月前

其他发布通道:testingAG → 0.0.29-1003,beta → 0.2.81-aplha.0,experimental → 0.8.4-alpha.0,alpha → 0.15.3-alpha.1。

关于 @100mslive/hms-video-store 的常见问题

@100mslive/hms-video-store 是什么?

@ 100mslive Core SDK ,它总结了WebRTC的复杂性,同时为数据管理提供了具有单向数据流的反应存储器

如何安装 @100mslive/hms-video-store?

在项目目录运行 npm install @100mslive/hms-video-store,或使用 pnpm add / yarn add / bun add。

@100mslive/hms-video-store 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@100mslive/hms-video-store 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@100mslive/hms-video-store 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@100mslive/hms-video-store 可以商用吗?

@100mslive/hms-video-store 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@100mslive/hms-video-store 的下载量有多少?

根据 npm 官方下载统计,@100mslive/hms-video-store 在 2026/10/04 – 2026/11/02 这 30 天内被下载 212,722 次,日均约 7,091 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@100mslive/hms-video-store 还在维护吗?

最新版本 0.15.3 发布于 2026/10/01(1 个月前);至今共发布 873 个版本,其中过去 12 个月发布了 81 个;首次发布于 2021/05/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。