开发 WebSyncTable 接口

更新时间:
2023-09-28
下载文档

开发 WebSyncTable 接口

本章介绍 WebSyncTable 的安装导入和使用步骤。

概述

WebSyncTable 模块是专为 SyncTable 服务的,它在内部封装了 WebSocket 用于客户端服务端的通信,主要用于完成客户端和服务端的本地表数据同步,以下介绍 WebSyncTable 的安装导入和操作方法。

安装导入

  1. 以 Vue 为例,从 vue.min.jsopen in new window 获取 vue.min.js,从 synctable.min.jsopen in new window 获取 synctable.min.js。

  2. 参考以下示例,在前端通过 script 标签引入 vue.js 和 WebSyncTable。

<!-- 引入vue-->
<script src="./vue/vue.min.js"></script>
<!-- 引入webSyncTable-->
<script src="./synctable/synctable.min.js"></script>
  1. 参考以下示例,在后端引入 SyncTable 和 WebSyncTable。SyncTable 用于创建本地同步表,WebSyncTable 用于客户端服务端的表同步。
var WebSyncTable = require("websynctable");
var SyncTable = require("synctable");

操作步骤

以下介绍 WebSyncTable 的使用步骤。

步骤 1:创建同步表

  1. 参考以下示例,在前端获取协议类型拼接服务端访问地址,创建一个名为 table1 的表。
var proto = location.protocol === "http:" ? "ws:" : "wss:";
var server = `${proto}//${window.location.host}`;
const auth = {
  token: this.token,
  srand: this.srand,
};
this.table = new SyncTable(server, "table1", auth);
  1. 参考以下示例,在后端同步创建一个与客户端相同的 SyncTable, 然后创建 WebSyncTable 同步前后端的表。
const table = new SyncTable('table1')
// Create SyncTable server
const server = new WebSyncTable(app, table, {
  onclient: function (event, client) {
 	  const userInfo = client.eos.user // 提取用户信息
    return true
  }
})

步骤 2:添加变量

参考以下示例,在前端通过 table.set() 方法向表中设置属性,后端会自动同步数据,服务也会有一份相同的数据。

this.table
  .set(this.key, this.value)
  .then((v) => {
    console.log("ok");
  })
  .catch((e) => {
    console.error("set error!");
  });

步骤 3:获取变量

参考以下示例,在前端获取变量。此方法会优先从本地表中拿数据,所以不会去请求后端,这样可以节省网络资源。

this.table
  .get(this.key)
  .then((value) => {
    console.log("k1 value is:", value);
    this.value = value;
  })
  .catch((error) => {
    console.error("get k1 value error!");
  });

userInfo 数据结构

字段名称类型说明
nicknamestring用户昵称(默认为手机号码)
expnumber用户过期时间
acoidstring翼辉 ID
文档内容是否对您有所帮助?
有帮助
没帮助