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

GO EASY 框架 之 NET 05

目录

1、Overview

2、Agent接口源码

3、收发消息

4、AgentHandle接收函数

5、conns.Conn接口


1、Overview

名称:agent.Agent 网络链接 接口;

DESC:网络链接,服务端与客户端通信媒介;

封装:进一步封装了net.Conn,封装了通用,以及自定义;

2、Agent接口源码

type Agent interface {WriteMsg(msg any)LocalAddr() net.AddrRemoteAddr() net.AddrClose()Destroy()UserData() anySetUserData(data any)LoopRecv(handle AgentHandle)
}

3、收发消息

  • 发送消息

Agent.WriteMsg(msg any);

直接将消息通过Agent发送到另一端,由Agent完成内部自动完成Encode/Decode(可在路由自定义Encode格式);

  • 接收消息

Agent.LoopRecv(handle AgentHandle),此接口是内部自动调用;

Agent 通过路由的消息协议调用handle并传Decode的消息内容传递给此handle;

接收消息的是一个个自定义的AgentHandle类型的函数;

消息ID,消息体,handle需要在路由中注册;

4、AgentHandle接收函数

type AgentHandle func([]byte, Agent)

在easy中,Route路由器将 typehandle.HandleMessage 转化成agent.AgentHandle 交给Agent处理;

5、conns.Conn接口

type Conn interface {ReadMsg() ([]byte, error)WriteMsg(args []byte) errorLocalAddr() net.AddrRemoteAddr() net.AddrClose()Destroy()Done() chan struct{}GetOption() *Option
}

Agent基于conns.Conn接口实现了网络链接;

Tcp,WebSocket等链接体都实现了conns.Conn;

因此使用TCP,以及WebSocket 等不同的网络协议,对外接口都是一样的agent.Agent的;

相关文章:

GO EASY 框架 之 NET 05

目录 1、Overview 2、Agent接口源码 3、收发消息 4、AgentHandle接收函数 5、conns.Conn接口 1、Overview 名称:agent.Agent 网络链接 接口; DESC:网络链接,服务端与客户端通信媒介; 封装:进一步封…...

【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法

【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法 引言 在应用开发过程中,将应用程序上传到 App Store Connect 是一个关键的环节。本文将探讨几种常见的 IPA 文件上传方法,包括 Xcode、Application Loader、altool、Appuploader以及Transport…...

面试经典 150 题 -- 滑动窗口 (总结)

面试经典150题链接 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 209 . 长度最小的子数组 思路 : 滑动窗口的思想,取ij0,向后遍历j,记录前缀和[l,r]为s,如果s>target,那么左端点向右移动,直到s…...

JDK8对List对象根据属性排序

文章目录 JDK8对List对象根据属性排序1. 被排序字段为null或者空时候报错2. 使用Stream流排序2.1 根据name升序2.2 根据name升序,score降序 3. 使用Collections排序3.1 根据name升序3.2 根据name升序,score降序 4. 完整的demo JDK8对List对象根据属性排序…...

【2024美国大学生数学建模竞赛】2024美赛C题网球运动中的势头,网球教练4.0没人比我更懂这个题了!!!

【2023美国大学生数学建模竞赛】2024美赛C题 问题分析、数学模型、实现代码、完整论文 引言 本人是计算机博士,拥有10年网球球龄,2023年的温网决赛,熬夜到半夜全称观看完了直播,对于网球规则、比赛的数据非常熟悉,这个…...

python的Flask生产环境部署说明照做成功

最近刚好在我的Linux服务器上部署一个Web服务, 使用了python的Flask框架, 因此本文主要介绍flask在linux环境上的部署。 Flask 是一个轻量级的 Python Web 框架,非常适合快速开发小型到中型的 Web 应用。然而,Flask 自带的服务器通常是用于开发目的&…...

EXCEL VBA调用百度api识别身份证

EXCEL VBA调用百度api识别身份证 Sub BC_识别身份证()Dim SHD, SHX As WorksheetDim AppKey, SecretKey, Token, PathY As StringDim jSon, JSonA, WithHttp As ObjectDim Pic, oDom, oW, jsCode, paramsDim ARX, BRX, DRX, ERX, ZADDim StrText, StrUrl As StringDim StrA, S…...

【每日一题】7.LeetCode——合并两个有序链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》|《数据结构与算法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢…...

【零基础学习CAPL】——CAN报文的发送(按下按钮同时周期性发送)

🙋‍♂️【零基础学习CAPL】系列💁‍♂️点击跳转 文章目录 1.概述2.面板创建3.系统变量创建4.CAPL实现4.1.函数展示4.2.全量报文展示5.效果1.概述 本章主要介绍使用CAPL和Panel在按下按钮时发送周期性CAN报文。 本章主要在“【零基础学习CAPL】——CAN报文的发送(配合P…...

六、Nacos源码系列:Nacos健康检查

目录 一、简介 二、健康检查流程 2.1、健康检查 2.2、客户端释放连接事件 2.3、客户端断开连接事件 2.4、小结 2.5、总结图 三、服务剔除 一、简介 Nacos作为注册中心不止提供了服务注册和服务发现的功能,还提供了服务可用性检测的功能,在Nacos…...

2024美赛C题思路/代码:网球中的动量

美赛直播b站,提前关注:川川菜鸟 美赛辅导预定:美赛服务 去年美赛C题:2023美赛C题 题目翻译 背景 在2023年温布尔登男子单打决赛中,20岁的西班牙新星阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自201…...

ConcurrentHashMap原理详解(太细了)

一、什么是ConcurrentHashMap ConcurrentHashMap和HashMap一样,是一个存放键值对的容器。使用hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。 同时,ConcurrentHashMap是线程安全的HashMap。专门用于多线程环境。 二、Concurre…...

EasyExcel根据对应的实体类模板完成多个sheet的写入与读取

1.展示模板一的实体类 import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowH…...

在企业数字化转型过程中,IT运维发挥着怎样的价值?

IT运维软件在企业数字化转型中发挥着重要的价值。从效率、稳定性、安全性和资源利用率以及数据分析决策支持都有巨大的提升。 提高效率 利用自动化巡检功能,实时或定时进行系统巡检,减少人力巡检的繁琐和低效,避免手动操作的失误&#xff0c…...

01-工厂模式 ( Factory Pattern )

工厂模式 Factory Pattern 摘要实现范例 工厂模式(Factory Pattern)提供了一种创建对象的最佳方式 工厂模式在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象 工厂模式属于创建型模式 摘要 1. 意图 …...

【LeetCode】每日一题 2024_2_2 石子游戏 VI(排序、贪心)

文章目录 LeetCode?启动!!!题目:石子游戏 VI题目描述代码与解题思路 LeetCode?启动!!! 题目:石子游戏 VI 题目链接:1686. 石子游戏 VI 题目描述…...

一站式在线协作开源办公软件ONLYOFFICE,协作更安全更便捷

1、ONLYOFFICE是什么? ONLYOFFICE是一款功能强大的在线协作办公软件,可以创建编辑Word文档、Excel电子表格,PowerPoint(PPT)演示文稿、Forms表单等多种文件。ONLYOFFICE支持多个平台,无论使用的是 Windows、…...

Java进击框架:Spring-综合(十)

Java进击框架:Spring-综合(十) 前言Rest ClientsWebClientRestTemplateHTTP接口 JMS (Java消息服务)使用Spring JMS发送消息接收消息注释驱动的侦听器端点 JMXEmail任务执行和调度Spring TaskExecutor 抽象Spring TaskScheduler 抽象支持调度…...

2024年第九届信号与图像处理国际会议(ICSIP 2024)

2024第九届信号与图像处理国际会议(ICSIP 2024)将于2024年7月12-14日在中国南京召开。ICSIP每年召开一次,在过去的七年中吸引了1200多名与会者,是展示信号和图像处理领域最新进展的领先国际会议之一。本次将汇集来自亚太国家、北美…...

webassembly003 MINISIT mnist/convert-h5-to-ggml.py

数据结构 # Convert MNIS h5 transformer model to ggml format # # Load the (state_dict) saved model using PyTorch # Iterate over all variables and write them to a binary file. # # For each variable, write the following: # - Number of dimensions (int) # …...

通义千问3-Reranker-0.6B效果惊艳:数学证明步骤间逻辑连贯性重排序

通义千问3-Reranker-0.6B效果惊艳:数学证明步骤间逻辑连贯性重排序 1. 模型介绍与核心能力 通义千问3-Reranker-0.6B是Qwen3 Embedding模型系列的最新成员,专门针对文本重排序任务进行了深度优化。这个6亿参数的模型虽然体积小巧,但在数学证…...

3.25 复试练习

OJ改错填空strcpy--strcpy(dest, src); // 将src复制到deststrcmp--strcmp(s1, s2);返回值含义0两个字符串相等> 0s1 大于 s2< 0s1 小于 s2矩阵质因数问题描述将一个正整数N(1<N<32768)分解质因数。例如&#xff0c;输入90&#xff0c;打印出902*3*3*5。输入说明输…...

Claude Code 用了半年才发现,原来上下文烧没了自己根本不知道!

点击上方卡片关注我设置星标 学习更多AI出海知识用 Claude Code 最怕什么&#xff1f;不是它写错代码&#xff0c;那改改就好。最怕的是写着写着突然质量暴跌&#xff0c;前面说好的逻辑它不认了&#xff0c;该记住的上下文全忘了&#xff0c;然后你反应过来&#xff1a;上下文…...

四自由度车辆与简支梁桥车桥耦合振动的Matlab实现

车桥耦合振动程序 matlab编程 四自由度车辆与简支梁桥车桥耦合 可提取车体垂直及转动加速度响应以及车轮响应 在交通工程领域&#xff0c;车桥耦合振动的研究对于保障桥梁结构安全以及行车舒适性至关重要。今天咱们就来讲讲如何用Matlab实现四自由度车辆与简支梁桥的车桥耦合振…...

Win11Debloat:终极Windows系统清理工具,一键提升电脑性能的完整指南

Win11Debloat&#xff1a;终极Windows系统清理工具&#xff0c;一键提升电脑性能的完整指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执…...

为ROS开发准备:在拯救者Y7000上搭建Win11+Ubuntu22.04双系统全流程

拯救者Y7000 Win11与Ubuntu22.04双系统配置&#xff1a;ROS开发环境搭建实战手册 在机器人操作系统&#xff08;ROS&#xff09;开发领域&#xff0c;稳定的Linux环境是必不可少的基石。对于使用拯救者Y7000这类高性能笔记本的开发者而言&#xff0c;如何在保留Windows11系统的…...

DAMOYOLO-S效果展示:低光照、模糊、遮挡图像下的鲁棒检测能力

DAMOYOLO-S效果展示&#xff1a;低光照、模糊、遮挡图像下的鲁棒检测能力 1. 引言&#xff1a;当目标检测遇上“坏天气” 想象一下&#xff0c;你正在开发一个智能安防摄像头系统&#xff0c;或者一个自动驾驶的视觉模块。白天光线充足、画面清晰的时候&#xff0c;一切都很完…...

CodeSys WebVisu避坑指南:用three.js给机械臂做3D可视化,我踩过的8个坑

CodeSys WebVisu与three.js深度整合实战&#xff1a;机械臂3D可视化开发避坑手册 在工业自动化领域&#xff0c;机械臂的实时状态可视化一直是HMI开发中的难点与痛点。传统解决方案往往受限于渲染效果和交互灵活性&#xff0c;而基于WebGL的three.js技术栈恰好能弥补这些不足。…...

FreeRTOS在STM32F407上的内存与栈空间优化全攻略:从CubeMX配置到避免堆栈溢出

FreeRTOS在STM32F407上的内存与栈空间优化全攻略&#xff1a;从CubeMX配置到避免堆栈溢出 在嵌入式开发中&#xff0c;资源管理往往是决定项目成败的关键因素。对于使用STM32F407这类资源受限的MCU进行多任务开发的工程师来说&#xff0c;如何合理规划和管理有限的RAM资源&…...

SEO_为什么你的网站需要SEO?关键原因解析

<h3 id"seoseo">SEO:为什么你的网站需要SEO&#xff1f;关键原因解析</h3> <p>在当今数字化时代&#xff0c;拥有一个网站是企业或个人展示品牌、产品和服务的重要途径。仅仅拥有一个网站并不足以吸引足够的访问量和客户。这时&#xff0c;SEO&…...