📚往期学习笔录📝:
📝 鸿蒙(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