Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
leancloud-realtime
Advanced tools
为您的 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 tag5.0.0-rc.2 (2020-03-26)
为了保证兼容性,SDK 一直以来分发的都是 ECMAScript 5 版本的代码,并打包了所有需要的 Polyfills(比如 Promise)。
从这个版本起,SDK 将同时提供以最新版本 ECMAScript 为编译目标的版本。相比于以 ECMAScript 5 版本,最新 ECMAScript 版本的 SDK 拥有更小的体积与更好的运行时优化,适用于只需要兼容最新版本浏览器的使用场景。如果应用使用了 @babel/preset-env
或类似方案,也可以在转译时 include 最新 ECMAScript 版本的 SDK,由应用来决定要兼容的目标运行环境。
需要注意最新版本 ECMAScript 每年都会变,而该版本的目标即是提供与最新标准对齐的代码,因此由于引入了新版本 ECMASCript 特性导致不再支持某些非最新版本的运行环境将不被视为 Breaking change。当前 ECMAScript 的版本为 2020。
require('leancloud-realtime/es-latest')
来引入该版本的 SDK;dist/es-latest
目录下找到预编译的文件。<a name="5.0.0-rc.1"></a>
FAQs
LeanCloud Realtime Message JavaScript SDK
The npm package leancloud-realtime receives a total of 2,122 weekly downloads. As such, leancloud-realtime popularity was classified as popular.
We found that leancloud-realtime demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.