在使用rcp请求网络时,看到rcp会创建一个session通过session来请求网络,这个session可以全局一个吗,还是每次请求网络都需要创建一个新的session?
// Define the headers
let headers: rcp.RequestHeaders = {
'accept': 'application/json'
};
// Define the content to be modified
let modifiedContent: UserInfo = {
'userName': 'xxxx'
};
// Create the communication session object session
const session = rcp.createSession();
// Define the request object req
let req = new rcp.Request('http://xxx', 'PATCH', headers, modifiedContent);
// Initiate a request
session.fetch(req).then((response) => {
Logger.info('Request succeeded, message is ' + JSON.stringify(response));
}).catch((err: BusinessError) => {
Logger.error(`err: err code is ${err.code}, err message is ${JSON.stringify(err)}`);
});
以上demo中每次请求的request肯定不一样,在域名一样的情况下,应用内可以保持一个session单例吗,多个网络并发请求时,是建议创建多个session还是用一个session请求多个request就可以了?
rcp创建的Session可以用于发送多个网络请求,可以复用。session对象的创建有限制最多16个。在域名相同的情况下,可以保持一个session单例,但在多个网络并发请求时,建议创建多个会话实例以确保请求的独立性和并发性。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/remote-communication-rcp-V5\#section1671892662116