HarmonyOS 开发实践 —— 基于网络的VPN连接实现


📚往期学习笔录📝:

📝 鸿蒙(HarmonyOS)北向开发知识点记录~
📝 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
📝 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
📝 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
📝 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
📝 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
📝 记录一场鸿蒙开发岗位面试经历~
📝 持续更新中……


"歪屁恩"全称为虚拟私人网络(Virtual Private Network),是常用于连接中、大型企业或团体间私人网络的通讯方法,利用隧道协议(Tunneling Protocol)来达到发送端认证、消息保密与准确性等功能。

使用过程中,外网的用户可以使用"歪屁恩"client 连接组织搭建的 “歪屁恩” server 以建立通信隧道

随后便建立了虚拟的私人网络,处于外网的 worker 和内网中的 server 可以相互通信。

场景一:手机应用配置"歪屁恩"客户端转发请求到 远程"歪屁恩"服务端访问互联网,实现建立基本 “歪屁恩” 服务能力

效果图

启动界面如下图示:

点击’启动"歪屁恩"Ext’按钮,会弹窗提示是否使用"歪屁恩"权限连接。

方案描述

当前提供三方"歪屁恩"能力主要用于创建虚拟网卡及配置"歪屁恩"路由信息,连接隧道过程及内部连接的协议需要应用内部自行实现,创建过程可参考如下:

1、项目中“jian”立"歪屁恩"Ability.ets文件,继承调用"歪屁恩"ExtensionAbility提供"歪屁恩"创建、销毁等生命周期能力。

2、ability实现后在entry-module.json5中,添加extensionAbilities相关配置。

3、设置want参数指定的启动目标,启用"歪屁恩"服务。

核心代码

1、项目中“jian”立"歪屁恩"Ability.ets文件,继承调用"歪屁恩"ExtensionAbility提供"歪屁恩"创建、销毁等生命周期能力

private "歪屁恩"Connection: "歪屁恩"Ext."歪屁恩"Connection;

onCreate(want: Want) {

  console.info(TAG, `onCreate, want: ${want.abilityName}`);

  this."歪屁恩"Connection = "歪屁恩"Ext.create"歪屁恩"Connection(this.context);

  console.info("create"歪屁恩"Connection success");

}

onRequest(want: Want, startId: number) {

  console.info(TAG, `onRequest, want: ${want.abilityName}`);

}

onConnect(want: Want) {

  console.info(TAG, `onConnect, want: ${want.abilityName}`);

  return null;

}

onDisconnect(want: Want) {

  console.info(TAG, `onDisconnect, want: ${want.abilityName}`);

}

onDestroy() {

  this.Destroy();

  console.info(TAG, `onDestroy`);

}

Destroy() {

  hilog.info(0x0000, 'developTag', '%{public}s', '"歪屁恩" Destroy');

  "歪屁恩"_client.stop"歪屁恩"(g_tunnelFd);

  this."歪屁恩"Connection.destroy().then(() => {

    hilog.info(0x0000, 'developTag', '%{public}s', '"歪屁恩" Destroy Success');

  }).catch((err : Error) => {

    hilog.error(0x0000, 'developTag', '"歪屁恩" Destroy Failed: %{public}s', JSON.stringify(err) ?? '');

  })

}

2、module.json5文件中配置extensionAbilities参数,样例如下:

{

  "module": {

    "name": "entry",

    "type": "entry",

    "descripti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值