LeanCloud JavaScript Realtime SDK

npm npm gzip size Build Status Codecov Known Vulnerabilities

为您的 JavaScript App 接入 LeanCloud 实时通讯服务。

版本说明

遵循 语义化版本

安装稳定版本:

npm install leancloud-realtime --save

安装测试版本:

npm install leancloud-realtime@next --save

安装指定版本:

// 安装 v3 版本
npm install leancloud-realtime@3 --save

支持的运行环境

文档

Demo

插件

package name 描述 版本 文档
leancloud-realtime-plugin-typed-messages 富媒体消息 npm API docs
leancloud-realtime-plugin-groupchat-receipts 群聊已读回执 npm API docs
leancloud-realtime-plugin-webrtc WebRTC 客户端 npm API docs

支持

贡献

如果你希望为这个项目贡献代码,请按以下步骤进行:

  1. Fork 这个项目,clone 到本地
  2. 在目录中执行 npm install 安装所需 Node.js 依赖包
  3. 编码,更新测试用例
  4. 运行 npm test 确保测试全部 pass
  5. 提交改动,请遵循 conversational commit message 风格
  6. 发起 Pull Request 至 master 分支

项目的目录结构

.
├── demo
├── deploy.sh                 // 部署 gh-pages 分支
├── release.sh                // 部署 dist 分支
├── dist                      // 打包产出 (dist 分支)
│   ├── core.js               // 核心逻辑(不包含运行时)
│   ├── im.js                 // IM(不包含运行时)
│   ├── im-browser.js         // 浏览器用
│   ├── im-weapp.js           // 微信小程序用
│   └── im-node.js            // node 用
├── proto
│   ├── message-compiled.js     // 使用 pbjs 生成的 message 类
│   ├── message.js              // ES6 wrapper
│   └── message.proto           // proto 原始文件
├── src                       // 源码
│   └── index.js                // 打包入口
├── test                      // 测试用例
│   ├── browser                 // 浏览器测试入口
│   └── index.js                // 测试入口
└── plugins
    ├── typed-messages          // leancloud-realtime-plugin-typed-messages package
    └── webrtc                  // leancloud-realtime-plugin-webrtc package

Architecture

SDK 分为连接层与应用层两部分,只存在应用层对连接层公开 API 的调用,连接层对开发者不可见。

连接层

应用层

开启调试模式

Node.js

export DEBUG=LC*

浏览器

localStorage.setItem('debug', 'LC*');

Develop Workflow

本地开发

更新 .proto 后请运行

npm run convert-pb

测试

npm run test:node -- --grep KEYWORDS

浏览器测试

npm run test:browser-local

编译

npm run build

持续集成

合并 PR 到 master 分支后持续集成会自动运行 npm buildnpm run docs,然后将 dist 目录推送到 dist 分支,将文档与 demo 推送到 gh-pages。

Release Process Workflow

  1. 遵循 semver 提升 package.json 中的版本号
  2. npm run changelog 生成新的 changelog.md,润色之
  3. Commit package.jsonchangelog.md
  4. Push to remote master branch
  5. 等待持续集成 pass
  6. 使用 GitHub 基于 dist 分支生成 pre-release 包(for bower)
  7. Fetch and checkout remote dist branch 并确认该提交的内容是即将发布的版本
  8. npm publish(npm publish,需 npm 协作者身份),如果是 pre-release 版本需要带 next tag
  9. 如有更新,在 npm 上发布各个 plugin