文档管理中心

urpc(高性能rpc通信库)

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

本模块提供URPC功能。应用程序可通过URPC提供的生成代码接口发起RPC请求。常见的URPC方法包括urpcStubCreateUrpcCallUrpcCancelUrpcDestroy

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

导入模块

收起
自动换行
深色代码主题
复制
  1. import { urpc } from '@kit.RemoteCommunicationKit';

FlowbufType

type FlowbufType =

'INT8' | 'UINT8' | 'INT16' | 'UINT16' | 'INT32' | 'UINT32' | 'INT64' | 'UINT64' | 'BOOL' | 'FLOAT' | 'DOUBLE' | 'STRING' | 'BYTES' | 'MESSAGE' | 'REPEATED_INT8' | 'REPEATED_UINT8' | 'REPEATED_INT16' | 'REPEATED_UINT16' | 'REPEATED_INT32' | 'REPEATED_UINT32' | 'REPEATED_INT64' | 'REPEATED_UINT64' | 'REPEATED_BOOL' | 'REPEATED_FLOAT' | 'REPEATED_DOUBLE' | 'REPEATED_STRING' | 'REPEATED_BYTES' | 'REPEATED_MESSAGE' | 'ARRAY_INT8' | 'ARRAY_UINT8' | 'ARRAY_INT16' | 'ARRAY_UINT16' | 'ARRAY_INT32' | 'ARRAY_UINT32' | 'ARRAY_INT64' | 'ARRAY_UINT64' | 'ARRAY_BOOL' | 'ARRAY_FLOAT' | 'ARRAY_DOUBLE'

表示通过URPC通信允许传入和接收返回值的类型。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
类型 说明
'INT8' 表示参数类型为'INT8'。
'UINT8' 表示参数类型为'UINT8'。
'INT16' 表示参数类型为'INT16'。
'UINT16' 表示参数类型为'UINT16'。
'INT32' 表示参数类型为'INT32'。
'UINT32' 表示参数类型为'UINT32'。
'INT64' 表示参数类型为'INT64'。
'UINT64' 表示参数类型为'UINT64'。
'BOOL' 表示参数类型为'BOOL'。
'FLOAT' 表示参数类型为'FLOAT'。
'DOUBLE' 表示参数类型为'DOUBLE'。
'STRING' 表示参数类型为'STRING'。
'BYTES' 表示参数类型为'BYTES'。
'MESSAGE' 表示参数类型为自定义的'MESSAGE'。
'REPEATED_INT8' 表示参数类型为可变长度的'INT8'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_UINT8' 表示参数类型为可变长度的'UINT8'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_INT16' 表示参数类型为可变长度的'INT16'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_UINT16' 表示参数类型为可变长度的'UINT16'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_INT32' 表示参数类型为可变长度的'INT32'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_UINT32' 表示参数类型为可变长度的'UINT32'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_INT64' 表示参数类型为可变长度的'INT64'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_UINT64' 表示参数类型为可变长度的'UINT64'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_BOOL' 表示参数类型为可变长度的'BOOL'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_FLOAT' 表示参数类型为可变长度的'FLOAT'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_DOUBLE' 表示参数类型为可变长度的'DOUBLE'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_STRING' 表示参数类型为可变长度的'STRING'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_BYTES' 表示参数类型为可变长度的'BYTES'数组,该字段为预留字段,在当前版本不能使用。
'REPEATED_MESSAGE' 表示参数类型为可变长度的自定义'MESSAGE'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_INT8' 表示参数类型为固定长度的'INT8'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_UINT8' 表示参数类型为固定长度的'UINT8'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_INT16' 表示参数类型为固定长度的'INT16'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_UINT16' 表示参数类型为固定长度的'UINT16'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_INT32' 表示参数类型为固定长度的'INT32'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_UINT32' 表示参数类型为固定长度的'UINT32'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_INT64' 表示参数类型为固定长度的'INT64'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_UINT64' 表示参数类型为固定长度的'UINT64'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_BOOL' 表示参数类型为固定长度的'BOOL'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_FLOAT' 表示参数类型为固定长度的'FLOAT'数组,该字段为预留字段,在当前版本不能使用。
'ARRAY_DOUBLE' 表示参数类型为固定长度的'DOUBLE'数组,该字段为预留字段,在当前版本不能使用。

FlowbufElement<T>

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

FlowbufElement<T>用于定义非数组的URPC入参和返回值类型。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
type FlowbufType 表示通过URPC通信允许传入和接收返回值的类型。
value T 表示该参数的具体数值。例如,如果type的值为'INT8',则value为number类型,可配置0。
name string 表示该参数的名称。

示例:

收起
自动换行
深色代码主题
复制
  1. import { urpc } from '@kit.RemoteCommunicationKit';
  2. let version: urpc.FlowbufElement<number> = {type: 'INT8', value: 0, name: ''};

FlowbufArrayElement<T>

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

FlowbufArrayElement<T>用于定义数组类型的URPC入参和返回值类型。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
type FlowbufType 表示通过URPC通信允许传入和接收返回值的类型。
value T[] 表示该参数的具体数值。例如,如果type的值为'ARRAY_INT8',则value为number[]类型,可配置[1,2,3]。
length number 表示该参数数组的长度,长度范围[0, 2147483647]。

示例:

收起
自动换行
深色代码主题
复制
  1. import { urpc } from '@kit.RemoteCommunicationKit';
  2. let version: urpc.FlowbufArrayElement<number> = {type: 'ARRAY_INT8', value: [1,2,3], length: 3};

urpcStubCreate

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

urpcStubCreate(config: UrpcInitConfiguration, funcList: string | string[]): Promise<UrpcStub>

创建UrpcStub,使用Promise异步回调。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

需要权限: ohos.permission.INTERNET

起始版本: 5.0.1(13)

参数:

展开
参数名 类型 必填 说明
config UrpcInitConfiguration stub配置。
funcList string | string[] URPC函数调用列表。

返回值:

展开
类型 说明
Promise<UrpcStub> Promise对象,返回可用于发出URPC请求的对象。

错误码:

错误码的详细介绍请参见API错误码

展开
错误码ID 错误信息
201 Permission denied.
401 Parameter error.
10079100998 Function name error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { urpc } from '@kit.RemoteCommunicationKit';
  3. // 下面IP地址仅作为示意
  4. let node: urpc.IpAndPort = {
  5. ip: '192.168.1.1',
  6. port: 8000
  7. }
  8. let connect: urpc.UrpcConnectConfiguration = {
  9. node: node,
  10. protocol: 'eat',
  11. }
  12. let config: urpc.UrpcInitConfiguration = {
  13. timeout: 3000,
  14. mode: 'client',
  15. connect: connect
  16. }
  17. const funcList:string[] = ['uploadFile'];
  18. urpc.urpcStubCreate(config, funcList).then((urpcStub: urpc.UrpcStub) => {
  19. urpcStub.destroy();
  20. }).catch((err: BusinessError<string>) => {
  21. console.error(`Failed to create urpc stub, error code ${err.code}, error info ${err.data}`);
  22. })

UrpcCall

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

type UrpcCall = (funcName: string, request: object, returnValue: object, config?: CallingOption) => UrpcPromise

用于发起一个URPC请求,并接收来自服务器的响应。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

参数:

展开
参数名 类型 必填 说明
funcName string URPC请求函数名。
request object URPC请求对象。对象体积最大值为1MB。如果超出最大值,抛出错误码1007910001
returnValue object URPC响应对象。对象体积最大值为100KB。如果超出最大值,抛出错误码1007910006
config CallingOption 单次请求配置选项。该字段为预留字段,在当前版本并不生效。

返回值:

展开
类型 说明
UrpcPromise Promise对象,返回来自服务器的响应对象。

错误码: 错误码的详细介绍请参见API错误码

UrpcCancel

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

type UrpcCancel = (callingId?: number | number[]) => void

用于取消指定或所有正在进行的URPC请求。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

参数:

展开
参数名 类型 必填 说明
callingId number | number[] 取消指定callingId的请求。如果不填该字段表示取消本次UrpcStub对应的所有请求,取值范围[0, 2147483647]。

错误码: 错误码的详细介绍请参见API错误码

UrpcDestroy

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

type UrpcDestroy = () => void

用于销毁UrpcStub实例。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

错误码: 错误码的详细介绍请参见API错误码

UrpcStub

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

表示可用于发出URPC请求的通信会话。它提供了各种远程调用方法(call、cancel、destroy)。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

属性:

展开
名称 类型 只读 可选 说明
id number UrpcStub的唯一标识id。
call UrpcCall 表示调用URPC请求。
cancel UrpcCancel 表示取消URPC请求。
destroy UrpcDestroy 表示销毁UrpcStub。

UrpcInitConfiguration

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

定义会话的配置参数,为开发者提供了对HTTP会话各个方面的详细控制。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
mode UrpcMode URPC的运行模式,默认值为'client',表示client模式。
connect UrpcConnectConfiguration 指定与stub相关联的连接配置,包括ip地址和端口号、URPC连接协议、是否多径等配置项。
timeout number 设置URPC的连接超时时间,表示请求等待多久后超时返回,单位是毫秒(ms),取值范围[0, 4294967295]。该字段为预留字段,在当前版本并不生效。

示例:

收起
自动换行
深色代码主题
复制
  1. import { urpc } from '@kit.RemoteCommunicationKit';
  2. // 下面IP地址仅作为示意
  3. let node: urpc.IpAndPort = {
  4. ip: '192.168.1.1',
  5. port: 8000
  6. }
  7. let connect: urpc.UrpcConnectConfiguration = {
  8. node: node,
  9. protocol: 'eat',
  10. }
  11. let config: urpc.UrpcInitConfiguration = {
  12. timeout: 3000,
  13. mode: 'client',
  14. connect: connect
  15. }

UrpcMode

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

type UrpcMode = 'client'

当前仅支持填写'client',表示该URPC节点为client模式,可主动发起请求,等待服务器的响应。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
类型 说明
'client' 表示URPC节点的模式,值固定为'client'。

UrpcConnectConfiguration

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

UrpcConnectConfiguration配置URPC连接的关键信息,可以配置连接的ip和端口号,以及传输协议等可选参数。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
node IpAndPort 连接的IP和端口配置。
protocol UrpcProtocol 传输连接采用的协议类型,默认值为'eat',表示采用eat协议。
multiPath boolean 是否支持多路径传输,true表示支持多路径传输,多路径包含蜂窝网络和Wi-Fi;false表示不支持多路径传输,默认值为false。该字段为预留字段,在当前版本并不生效。
flags number 证书标记位,非0表示开启证书校验。默认值为0,表示不开启证书校验。
host string urpc服务的域名,默认值为空字符串。
caPath string 校验证书的路径名称,默认值为空字符串。

示例:

收起
自动换行
深色代码主题
复制
  1. import { urpc } from '@kit.RemoteCommunicationKit';
  2. // 下面IP地址仅作为示意
  3. let node: urpc.IpAndPort = {
  4. ip: '192.168.1.1',
  5. port: 8000
  6. }
  7. let connect: urpc.UrpcConnectConfiguration = {
  8. node: node,
  9. protocol: 'eat',
  10. multiPath: false,
  11. flags: 0,
  12. host: '192.168.1.1',
  13. caPath: 'data/single_urpc/eat.pem'
  14. }

IpAndPort

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

IpAndPort用于配置URPC的连接IP和端口号。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
ip string 指定URPC的IPv4或IPv6地址。
port number 指定URPC端口号,取值范围[0, 65535]。

示例:

收起
自动换行
深色代码主题
复制
  1. import { urpc } from '@kit.RemoteCommunicationKit';
  2. // 下面IP地址仅作为示意
  3. let node: urpc.IpAndPort = {
  4. ip: '192.168.1.1',
  5. port: 8000
  6. }

UrpcPromise

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

表示URPC请求的返回值

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
promise Promise<Object> URPC请求的响应对象。
callingId number URPC请求的唯一标识Id,取值范围[0, 2147483647]。

UrpcProtocol

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

type UrpcProtocol = 'eat'

当前仅支持填写'eat',表示URPC的协议类型为eat。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
类型 说明
'eat' 表示URPC节点的协议类型,值固定为'eat'。

CallingOption

Phone5.0.1(13)+PC/2in15.0.1(13)+Tablet5.0.1(13)+TV5.1.1(19)+Wearable5.1.0(18)+

用于配置URPC请求的优先级。

模型约束: 此接口仅可在Stage模型下使用。

系统能力: SystemCapability.Collaboration.RemoteCommunication

起始版本: 5.0.1(13)

展开
名称 类型 只读 可选 说明
priority number 配置URPC请求的优先级,默认为0,最大取值为3,表示优先级最高,优先级高的可以优先传输。该字段为预留字段,当前版本并不生效。
请输入您想要搜索的关键词