当前位置: 首页 > article >正文

鸿蒙开发(NEXT/API 12)【同步读写流】远场通信服务

开发步骤

  1. 导包。
import { rcp } from '@kit.RemoteCommunicationKit';
import { expect } from '@ohos/hypium';
  1. 同步写。
const testNetworkInputQueue = async (done: Function): Promise<void> => {
  const NetworkInputQueue = rcp.NetworkInputQueue;
  const networkInputQueue = new NetworkInputQueue();

  let counter = 0;
  const interval = setInterval(() => {
    networkInputQueue.write('a counter ' + counter++);
    if (counter === 10) {
      clearInterval(interval);
      networkInputQueue.close();
    }
  }, 100);

  const session = rcp.createSession({
    requestConfiguration: {
      security: {
        remoteValidation: 'skip',
      },
    },
  });

  const response = await session.post('https://example.org/post', networkInputQueue);
  expect(response.statusCode).assertEqual(200);
  const obj = response.toJSON();
  if (obj) {
    expect(obj['data']).assertEqual(
      'a counter 0a counter 1a counter 2a counter 3a counter 4a counter 5a counter 6a counter 7a counter 8a counter 9',
    );
  } else {
    expect().assertFail();
  }

  session.close();
  done();
}
  1. 同步读。
const testNetworkOutputQueue = async (done: Function): Promise<void> => {
  const NetworkOutputQueue = rcp.NetworkOutputQueue;
  const session = rcp.createSession();
  const networkOutputQueue = new NetworkOutputQueue();
  const numOfChunks = 10;
  const chunkLength = 1000;
  const totalBytes = numOfChunks * chunkLength;
  const resp = await session.get('https://httpbin.org/bytes/' + totalBytes.toString(), networkOutputQueue);

  for (let i = 0; i < numOfChunks; i++) {
    const chunk = networkOutputQueue.read(chunkLength);
  }

  session.close();
  done();
}

http://www.kler.cn/news/312799.html

相关文章:

  • Kafka3.8.0+Centos7.9的安装参考
  • 如何确保Java程序分发后不被篡改?使用JNI对Java程序进行安全校验
  • Linux C# DAY3
  • 道路裂缝,坑洼,病害数据集-包括无人机视角,摩托车视角,车辆视角覆盖道路
  • 超级Prompt!
  • linux网络编程4
  • 定义可引用的 CI/CD 配置文件中的输入参数
  • 【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
  • 中国IT产业新挑战与机遇共存
  • 【使用Hey对vllm接口压测】模型并发能力
  • ATE自动化测试系统集成:软件与硬件的技术结合
  • 迭代器和生成器的学习笔记
  • JVM 运行时数据区详解(下)
  • Windows通过网线传文件
  • Spring Boot整合MyBatis Plus详解
  • 二级C语言2023-9易错题
  • 反游戏学(Reludology):概念、历史、现状与展望?(豆包AI版)
  • mac 怎么查看CPU核数
  • 通过UV快速计算品牌独立站网络流量
  • 【算法】BFS 系列之 多源 BFS
  • Unity之FPS
  • 谷粒商城のElasticsearch
  • 优先级队列(堆)
  • 行业分析---自动驾驶行业的发展
  • MySQL定长窗口SQL
  • Spring为什么要用三级缓存解决循环依赖?
  • 微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较
  • libmodbus:写一个modbusTCP服务
  • 求Huffman树及其matlab程序详解
  • RabbitMQ 常见使用模式详解