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

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.Addr
    RemoteAddr() net.Addr
    Close()
    Destroy()
    UserData() any
    SetUserData(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) error
    LocalAddr() net.Addr
    RemoteAddr() net.Addr
    Close()
    Destroy()
    Done() chan struct{}
    GetOption() *Option
}

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

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

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


http://www.kler.cn/a/227408.html

相关文章:

  • 【数据结构】二叉树链式结构的实现
  • 明天是几号(c++题解)
  • scoped样式隔离原理
  • springboot在线文档的集成方式
  • MaxKey 单点登录认证系统——登录验证流程分析
  • LeAPI 后端接口开发 - 发布、下线接口
  • 正点原子--STM32定时器学习笔记(2)
  • 商品信息全景图:API接口在聚合商品数据中的应用
  • Shell脚本是一种用来自动化执行一系列命令的文本文件
  • Pinia:一个Vue的状态管理库
  • 操作系统透视:从历史沿革到现代应用,剖析Linux与网站服务架构
  • HBase 数据导入导出
  • Jenkins(三):自动化部署SpringBoot项目
  • 突破编程_C++_面试(基础知识(5))
  • 从零开始手写mmo游戏从框架到爆炸(三)— 服务启动接口与网络事件监听器
  • SpringBoot拉取日历数据
  • hive表加字段
  • 【MySQL】——数据定义
  • 五大架构风格之四-虚拟机架构风格
  • vue+springboot项目开发,使用MySQL示例数据库sakila