「连载」边缘计算(二十六)03-06:边缘部分源码(源码分析篇)

news/2024/5/19 14:23:46 标签: 边缘计算, 人工智能

(接上篇)

获取cloudhub client,具体如下所示。

cloudHubClient, err := clients.GetClient(ehc.config.Protocol, config.GetConfig())

clients.GetClient()函数定义具体如下所示:

KubeEdge/edge/pkg/edgehub/factory.go

//GetClient returns an Adapter object with new web socket

func GetClient(clientType string, config *config.EdgeHubConfig) (Adapter, error) {

switch clientType {

case ClientTypeWebSocket:

websocketConf := wsclient.WebSocketConfig{

...

}

return wsclient.NewWebSocketClient(&websocketConf), nil

case ClientTypeQuic:

quicConfig := quicclient.QuicConfig{

...

}

return quicclient.NewQuicClient(&quicConfig), nil

default:

klog.Errorf("Client type: %s is not supported", clientType)

}

return nil, ErrorWrongClientType

}

GetClient()函数定义可以知道,该函数定义了ClientTypeWebSocketClientTypeQuic两种client类型,两者都实现了Adapter interface。遇到Adapter类型的client变量时,记得对应此处的ClientTypeWebSocketClientTypeQuic

 cloud client初始化,具体如下所示。

err = ehc.chClient.Init()

ehc.chClient.Init()函数对应获取cloudhub client中ClientTypeWebSocketClientTypeQuic的Init()方法。

EdgeCore各模块广播已经连接成功的消息,具体如下所示。

// execute hook func after connect

ehc.pubConnectInfo(true)

将从cloud部分收到的消息转发给指定edge部分的指定模块,具体如下所示。

go ehc.routeToEdge()

将从edge部分的消息转发给cloud部分,具体如下所示。

go ehc.routeToCloud()

向cloud部分发送心跳信息,具体如下所示。

go ehc.keepalive()

剩下的步骤都是在edgehub模块退出时的一些清理操作。

到此,EdgeCore组件的edgehub模块的剖析就结束了。

未完待续……  


http://www.niftyadmin.cn/n/5409563.html

相关文章

HTTP代理出现错误是什么原因?如何解决?

HTTP代理是一种常见的工具,可以帮助我们隐藏真实的IP地址,提高网络访问速度,突破网络限制等。但是,在使用过程中,HTTP代理可能会遇到各种问题,导致HTTP代理出现错误。这些错误是什么原因造成的,…

Linux-网络相关函数接口-012

1.UDP编程 socket套接字编程 1.1【socket】 1.1.1函数原型 【int socket(int domain, int type, int protocol);】 1.1.2函数功能 创建一个用来通信的文件描述符1.1.3函数参数 【domain】:使用的协议族 AF_INET (IPv4协议族) 【type】:套接字类型【…

Provisional headers are shown报错原因支付宝小程序跳转页面时Ajax请求被杀死

报错 Provisional headers are shown 支付宝小程序一个页面请求没有结束,就跳转到了另一个页面 解决: - 等待请求结束再跳转 - 使用settimeout使进程在宏任务队列不会被杀死 携带参数太多,请求头过大导致支付宝中请求表现为无响应。【在另一…

25.基于springboot + vue实现的前后端分离-停车场管理系统(项目 + 论文)

项目介绍 本停车场管理系统是中小型的停车场管理的系统。包括用户信息管理,车位信息管理,车位费用管理,停泊车辆管理,车辆进出管理等主要功能。为方便用户可以清晰地了解到车辆运行情况,可以通过本系统日历图形报表和柱…

【记录31】elementUI el-tree 虚线、右键、拖拽

父组件 <eltree :treeData"treeData"></eltree>import eltree from "../../components/tree.vue"; export default {name: ,components: { // org_tree ,eltree},watch: {},data() {return {orgFormchoose: {},orgForm: { type: 0, limits: 1…

Vue中有哪些优化性能的方法?

Vue是一款流行的JavaScript框架&#xff0c;用于构建交互性强的Web应用程序。在前端开发中&#xff0c;性能优化是一个至关重要的方面&#xff0c;尤其是当应用程序规模变大时。Vue提供了许多优化性能的方法&#xff0c;可以帮助开发人员提升应用程序的性能&#xff0c;从而提升…

三金机电WMS项目启动,飞讯持续陪跑联创集团全面数字化征程

项目启动 日前&#xff0c;惠州三金机电科技有限公司&#xff08;简称“三金机电”&#xff09;成功召开了WMS项目启动会&#xff0c;会议由三金机电总经理陈文英带领项目核心团队成员悉数出席&#xff0c;与飞讯项目团队共同商讨项目事宜。该项目旨在通过引进飞讯WMS系统&…

html标签元素类型,web开发工具

面试题 HTML 1&#xff0c;html5有哪些新特性&#xff1f; 2&#xff0c;html5移除了那些元素&#xff1f; 3&#xff0c;如何处理HTML5新标签的浏览器兼容问题&#xff1f; 4&#xff0c;如何区分 HTML 和 HTML5&#xff1f; CSS 1&#xff0c;CSS 选择符有哪些&#xf…