消息推送
机制
底层 socket
通信基于心跳检测 实现消息实时推送与监听。
配置
通过 connect
配置 socket
Tacos.connect({
appCode: "",
...
socket: {
url: "ws://192.168.125.193:8083"
}
})
通过 sdk
的 createSocket
方法配置
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
});
...
}
})