![]() |
2 years ago | |
---|---|---|
.. | ||
dist | 2 years ago | |
es-latest | 2 years ago | |
node_modules | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
babel.config.js | 2 years ago | |
changelog.md | 2 years ago | |
core.js | 2 years ago | |
im.d.ts | 2 years ago | |
im.js | 2 years ago | |
karma-sauce.conf.js | 2 years ago | |
karma.conf.js | 2 years ago | |
package.json | 2 years ago | |
realtime.d.ts | 2 years ago |
为您的 JavaScript App 接入 LeanCloud 实时通讯服务。
遵循 语义化版本。
安装稳定版本:
npm install leancloud-realtime --save
安装测试版本:
npm install leancloud-realtime@next --save
安装指定版本:
// 安装 v3 版本
npm install leancloud-realtime@3 --save
package name | 描述 | 版本 | 文档 |
---|---|---|---|
leancloud-realtime-plugin-typed-messages | 富媒体消息 | API docs | |
leancloud-realtime-plugin-groupchat-receipts | 群聊已读回执 | API docs | |
leancloud-realtime-plugin-webrtc | WebRTC 客户端 | API docs |
如果你希望为这个项目贡献代码,请按以下步骤进行:
npm install
安装所需 Node.js 依赖包npm test
确保测试全部 pass.
├── 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
SDK 分为连接层与应用层两部分,只存在应用层对连接层公开 API 的调用,连接层对开发者不可见。
WebSocketPlus
:封装了 WebSocket。相比 w3 WebSocket,增加了以下特性:
Connection
:继承自 WebSocketPlus
,增加了与业务相关的功能:
send
接口返回 Promise,在 server 回复后才算 send 成功Realtime
:开发者使用 SDK 的入口,负责访问 router、创建 connection、创建与管理 clients、创建 messageParser(管理消息类型)、监听 connection 的消息并 dispatch 给对应的 clientClient
:所有的 clients 共享一个 connection
IMClient
:对应即时通讯中的「用户」,持有 connection 与 conversations,负责创建管理将收到的消息处理后在对应 conversation 上派发,所有的 IMClients 共享一个 messageParserMessageParser
消息解析器,负责将一个 JSON 格式的消息 parse 为对应的 Message 类Conversation
:实现对话相关的操作
ConversationQuery
:对话查询器Messages
AVMessage
:接口描述,生成文档用Message
:消息基类TypedMessage
:类型消息基类,继承自 Message
TextMessage
:文本消息,继承自 TypedMessage
FileMessage
及其子类、LocationMessage
)由于依赖 leancloud-storage,作为另一个独立 package 发布export DEBUG=LC*
localStorage.setItem('debug', 'LC*');
更新 .proto 后请运行
npm run convert-pb
测试
npm run test:node -- --grep KEYWORDS
浏览器测试
npm run test:browser-local
编译
npm run build
合并 PR 到 master 分支后持续集成会自动运行 npm build
与 npm run docs
,然后将 dist 目录推送到 dist 分支,将文档与 demo 推送到 gh-pages。
package.json
中的版本号npm run changelog
生成新的 changelog.md
,润色之package.json
,changelog.md
master
branchdist
branch 并确认该提交的内容是即将发布的版本npm publish
,需 npm 协作者身份),如果是 pre-release 版本需要带 next tag