消息推送

机制

底层 socket 通信基于心跳检测open in new window 实现消息实时推送与监听。

配置

通过 connect 配置 socket

Tacos.connect({
    appCode: "",
    ...
    socket: {
      url: "ws://192.168.125.193:8083" 
    }
})

通过 sdkcreateSocket 方法配置

const removeHandler = this.createSocket(
  {
    ...options,
    url: URL.socketUrl(spaceIds.join("-"), context.appCode)
  },
  (body) => {
    callback(body);
  }
);

参考: SocketConfig

拦截

全局拦截

通过 connect 初始化连接时,通过 core 对象注册全局拦截函数

Tacos.connect({ ... }).then(core => {
    // 获取当前上下文Context对象的socket请求拦截器对象
    const interceptor = core.interceptor("websocket");
    // 注入请求拦截回调函数
    interceptor.request(handle);
    // 注入请求响应回调函数
    interceptor.response(handle);
    // 融合其他的socket拦截器实例
    interceptor.merge(socketInterceptor);
})

局部拦截

sdk 模块内注册 socket 请求拦截函数

defineSDK({
  setup(){
     // 获取当前模块对象的socket请求拦截器
    const interceptor = this.interceptor("websocket");
     // 注入请求拦截回调函数
    interceptor.request(handle);
     // 注入请求响应回调函数
    interceptor.response(handle);
    ...
    this.createSocket(socketConfig, (body)=>{
        // 响应body
    });
    ...
  }
})
上次更新:
贡献者: zhengqian, jiangtao, yangxun