后Message RPC 软件
安装
npm install @ceramicnetwork/rpc-postmessage
使用量
import { createNamespaceClient, createNamespaceServer } from '@ceramicnetwork/rpc-postmessage'
type Methods = {
foo: { result: string }
}
const server = createNamespaceServer<Methods>({
target: window, // Listens to requests on window
namespace: 'test',
methods: { foo: () => 'bar' },
}).subscribe()
// Sends requests and receives responses on window
const transport = createPostMessageTransport(window, window, { postMessageArguments: ['*'] })
const client = createNamespaceClient(transport, 'test')
await client.request('foo') // 'bar'
// Stop server when done
server.unsubscribe()
类型
请求下载
用途 RPCMethods 财务报告和审定财务报表 RPCRequest
type RequestPayload<Message, Methods extends RPCMethods, K extends keyof Methods> = {
type: 'request'
message: Message
request: RPCRequest<Methods, K>
}
已处理的
用途 RPCMethods, (中文(简体) ), RPCRequest 财务报告和审定财务报表 RPCResponse
type HandledPayload<Message, Methods extends RPCMethods, K extends keyof Methods> = {
type: 'handled'
message: Message
request: RPCRequest<Methods, K>
response: RPCResponse<Methods, K> | null
}
服务器选项
用途 RPCMethods, (中文(简体) ), HandlerMethods 财务报告和审定财务报表 HandlerOptions
type ServerOptions<Context, Methods extends RPCMethods> = HandlerOptions<Context, Methods> & {
target: PostMessageTarget
methods: HandlerMethods<Context, Methods>
}
命名空间服务器选项
type NamespaceServerOptions<
Methods extends RPCMethods,
Namespace extends string = string,
Message = IncomingMessage<Wrapped<RPCRequest<Methods, keyof Methods>, Namespace>>
> = ServerOptions<Message, Methods> & {
namespace: Namespace
filter?: string | Array<string> | MessageFilter
}
命名空间客户端运输
type NamespaceClientTransport<
Methods extends RPCMethods,
Namespace extends string,
Incoming = IncomingMessage<Wrapped<RPCResponse<Methods, keyof Methods>, Namespace>>,
Outgoing = Wrapped<RPCRequest<Methods, keyof Methods>, Namespace>
> = TransportSubject<Incoming, Outgoing>
APIs 密码
服务( )
接收请求并发送对所提供的答复 target
类型参数
参数
回返 Subscription
创建Name 空间请求汉德勒操作器( )
类型参数
Methods extends RPCMethodsNamespace extends string = stringMessage = IncomingMessage<Wrapped<RPCRequest<Methods, keyof Methods>, Namespace>>
参数
methods: HandlerMethods<Message, Methods>namespace: Namespaceoptions?: HandlerOptions<Message, Methods> = {}
回返 OperatorFunction<Message, HandledPayload<Message, Methods, keyof Methods>>
创建Name spaceServer ()
类型参数
Methods extends RPCMethodsNamespace extends string = stringRequest = Wrapped<RPCRequest<Methods, keyof Methods>, Namespace>
参数
回返 Observable<HandledPayload<IncomingMessage<Request>, Methods, keyof Methods>>
创建Name 空间发送请求 ()
类型参数
Methods extends RPCMethodsNamespace extends string = string
参数
transport: NamespaceClientTransport<Methods, Namespace>namespace: Namespaceoptions?: UnwrapObservableOptions
创建“ 空间密度 ”
类型参数
Methods extends RPCMethodsNamespace extends string = string
参数
transport: NamespaceClientTransport<Methods, Namespace>namespace: Namespaceoptions?: UnwrapObservableOptions
许可证
Apache-2.0或麻省理工学院