DDP协议的Uniapp插件实现【附带MiniMongo Selector】 - 更新日志

1.2.3(2022-04-16)

提供一个callAsync方法,返回promise简化rpc调用回调模式

1.2.2(2022-04-16)

更新readme

1.2.1(2022-04-16)

更新示例,ddp仅仅包含核心的协议握手等功能,其它扩展已经分开成单独的包

1.2.0(2021-12-31)

client实例新增4个api: isReady(): Promise; 在连接成功时resolve isClose(): Promise;在断开时resolve onReady(cb: () => void): () => void; 注册一个每次连接成功就调用的回调 (cb: () => void): () => void;注册一个连接断开就调用的回调函数 bugfix:

  1. 文档更新可能失败的问题 - 变量名错了
  2. 文档更新可能不会出发响应 - 没有移除旧的属性

1.1.0(2021-12-22)

完全移除db相关code,及部分优化

1.0.9(2021-12-22)

移除db相关内容,仅仅保持纯粹的ddp客户端

1.0.8(2021-12-20)

changed _id update

1.0.5(2021-12-16)

freeze client,去除use方法绑定插件,推荐基于client和装饰器模式新增功能

1.0.4(2021-10-03)

ddp connection增加一个事件: 【原有】socket消息 :message 【新增】socket消息利用EJSON解析后的名字为'ddp-message',用于插件开发捕获各个阶段

1.0.3(2021-10-03)

去除log和更新一个声明文件 -- 之后的插件可能直接用纯js 和 js doc了

1.0.2(2021-10-03)

fix一个导致订阅被移除的问题

1.0.1(2021-10-03)

  1. 新增利用use 注册插件

1.0.0(2021-10-02)

[1.0.0] 2021.10.2 再不发一个,我觉得自己会一直拖下去了,凑合能用,后面补文档和优化,我在想要不要在某个博客写 - demo最近这两天发

已完成

  1. 使用websocket协议连接ddp服务器 [例如meteor]
  2. 订阅数据
  3. 调用方法
  4. 映射数据至vue响应式数组数据源
  5. 简化的Mininongo,使用它的selector进行的重写

暂不支持

  1. 账号服务 - 在研究中,计划绑定在实例
  2. Autorun - 不计划写,vue有足够的响应式支持了,当订阅参数变化时,取消上次订阅进行重新订阅即可
  3. 本地数据库操作直接反应到远程数据库 - 感觉有点风险,还是建议调用方法,改完后影响的数据如果有订阅,结果会挺快推到前台的。
  4. 文件传输,呃,这个不打算适配了,大文件建议直接upload吧

想做但不好做的

  1. 本地数据缓存: 因为取消订阅会触发删除数据操作,本地缓存就有点难,因为无法区分删除操作是取消订阅引起的还是真正的删除数据操作 - 但因为发布的数据往往只是文档的一部分,所以想追踪其实有点不太好弄

避坑指南

  1. 发布源的名称并不是数据集的名称
  2. 方法和发布可以取名为 a_b_c,或者 'a.b.c' 或者 'a/b/c' 而不是函数命名的驼峰形式