@xdffe/web-rpc
v0.1.1
Published
xdf web iframe rpc
Downloads
2
Readme
web-rpc
面向web iframe的rpc实现,底层基于postMessage跨域通讯实现
使用方法
const rpc = RPC.init();
rpc.init(window.parent, {
tag: '[rpc]parent<--', // '[rpc]-->iframe'
cid: 1
});
const name = await rpc.call('rename', {});
rpc.callProc('setName', 'xxx');
API
- 初始化
- RPC.init(win: Window, options: WebRPCOptions)
- WebRPCOptions { tag: string, cbid: number = 1 }
- RPC.init(win: Window, options: WebRPCOptions)
- 工具函数
- async RPC.sleep(ms: number)
EventEmitter
类- 公开方法
- emitter.on(type: string, listener: Function)
- 添加事件监听器
- emitter.un(type: string, listener?: Function)
- 移除事件监听器
- emitter.emit(type: string, ...args: any[])
- 触发事件
- emitter.on(type: string, listener: Function)
- 公开方法
WebRPC
类:- 继承自
EventEmitter
- 公开方法
- rpc.stub(name: string, impl: Function)
- 注册一个stub
- rpc.sendMsg(json)
- 发送消息
- rpc.call(name: string, ...args: any[])
- 调用远程async函数(有返回值)
- rpc.callProc(name: string, ...args: any[]);
- 调用远程过程(无返回值)
- rpc.stub(name: string, impl: Function)
- 私有方法(内部使用)
- rpc._sendCommand(cmd: string, args: any[] = [])
- 发送命令
- rpc._reg(cb: Function, async: boolean)
- 注册回调
- rpc._wrap(cbid: number, flag: boolean = false)
- 包装回调函数
- rpc._remove(cbid: number)
- 移除回调
- rpc._callback(cbid: number, args: any[])
- 执行返回回调
- rpc._call(cbid: number, args: any[])
- 执行回调
- rpc._sendCommand(cmd: string, args: any[] = [])
- 继承自