Golang | Zinx学习笔记(一)

news2024/11/19 2:36:10

参考

http://zinx.me/
https://www.kancloud.cn/aceld/zinx/1960213
https://www.yuque.com/aceld/tsgooa/gx01meg5ow4pftac


说明

zinx是一个基于Golang的轻量级并发服务器框架。

目前zinx已经在很多企业进行开发使用,具体使用领域包括:后端模块的消息中转、长链接游戏服务器、Web框架中的消息处理插件等。zinx的定位是代码简洁,让更多的开发者迅速的了解框架的内脏细节并且可以快速基于zinx DIY(二次开发)一款适合自己企业场景的模块。

zxin v0.1

zxin v0.1的代码比较基础,就是一些接口定义,服务的监听。项目结构如下:

在这里插入图片描述
IServer接口定义:
在这里插入图片描述

运行测试文件

cd znet
go test

在这里插入图片描述


Zinx-V0.2-简单的连接封装与业务绑定

V0.1版本我们已经实现了一个基础的Server框架,现在我们需要对客户端链接和不同的客户端链接所处理的不同业务再做一层接口封装,当然我们先是把架构搭建起来。代码结构如下:
在这里插入图片描述
IConnection接口定义:
在这里插入图片描述

该接口的一些基础方法,代码注释已经介绍的很清楚,这里先简单说明一个HandFunc这个函数类型,这个是所有conn链接在处理业务的函数接口,第一参数是socket原生链接,第二个参数是客户端请求的数据,第三个参数是客户端请求的数据长度。这样,如果我们想要指定一个conn的处理业务,只要定义一个HandFunc类型的函数,然后和该链接绑定就可以了。

运行测试文件

cd znet
go test

在这里插入图片描述

总结

0.1和0.2版本的代码比较基础,就是一些对http的封装。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1150158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis-Plus通用枚举功能 [MyBatis-Plus系列] - 第493篇

历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 S…

win 下安装 nvm 的使用与配置

nvm 全名 node.js version management,是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs。 注:如果已经安装了 nodejs 需先卸载后再安装 nvm 为了确保 nodejs 已彻底删除,可以看看安装目录中是否有 node 文件夹&#x…

Linux|安装Nomachine

参考:2022 Nomachine 最简安装与使用指南(https://blog.csdn.net/qq_51116518/article/details/127450253) 解压 先将目录调整到压缩包所在目录,输入sudo tar zxvf nomachine_7.6.2_3_aarch64.tar.gz 添加权限 sudo chmod -R…

基于Cmake+QT+VS的C++项目构建开发编译简明教程

目前项目是尽量利用开源项目为基础,考虑到跨平台,以及后期便于开发的协同和延续,开发语言基于C/C、UI基于QT(5.7.1),集成开发环境(IDE)使用Visual Studio(2015&#xff0…

开心要笑,不开心就待会儿再笑,生活亦如此

90白鸭绒填充,给宝贝满满的安全感 厚实细腻上身真的很舒适,而且不会显得臃肿哦 杜邦三防面料的优点 防水防油防污,耐脏又实穿!!

Spring Cloud之API网关(Zuul)

目录 Zuul 简介 功能 工作流程 搭建 1.引入依赖 2.添加注解 3.路由转发 4.测试 实现原理 EnableZuulProxy注解 ZuulServlet FilterProcessor Zuul内置过滤器 常用配置 Zuul 简介 zuul是SpringCloud子项目的核心组件之一,可以作为微服务架构中的API网…

MappingMongoConverter原生mongo 枚举类ENUM映射使用的是name

j.l.IllegalArgumentException: No enum constant com.xxx.valobj.TypeEnum.stringat java.lang.Enum.valueOf

dracut添加指定固件

文章目录 linux-firmware1、固件介绍2、Microcode updates for CPUs3、如何添加固件 linux-firmware 1、固件介绍 存放在 /lib/firmware,固件来自kernel 仓库更多的固件可以参考git仓库,https://git.kernel.org/pub/scm/linux/kernel/git/firmware/lin…

day16_IO

今日内容 1.复习 2.IO 3.Hutool 4.Idea会导jar包 一、File[熟悉] 1.1 介绍 文件和目录(文件夹) 路径名的抽象表示形式。 即使用路径来表示一个文件或者一个文件夹对象 路径: 相对路径,相对于当前项目的项目名下绝对路径,按照磁盘来确定 1.2 构造方法 File(String pathname) 通…

从 Hash索引、二叉树、B-Tree 与 B+Tree 对比看索引结构选择

从 Hash索引、二叉树、B-Tree 与 BTree 对比看索引结构选择 1、Hash 结构1.1、关于 Hash 数据结构1.2、InnoDB索引为啥不选 Hash 结构1.3、关于InnoDB 提供自适应 Hash 索引 (Adaptive Hash Index) 2、二叉搜索树3、平衡二叉树(AVL树 &#x…

EMQX内置Web管理控制台-Dashboard

一、Dashboard概述 EMQX Dashboard官网文档:https://docs.emqx.com/zh/enterprise/v5.1/dashboard/introduction.html 1、简介 EMQX 为用户提供了一个功能强大的内置管理控制台,即 EMQX Dashboard。通过这个控制台的 Web 界面,用户可以轻松监…

基于STM32闭环步进电机控制系统设计

**单片机设计介绍,1654基于STM32闭环步进电机控制系统设计(仿真,程序,说明) 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序文档 六、 文章目录 一 概要 基于STM32的闭环步进电机控制系统设计是…

劳动安全无小事,劳保安全鞋为您的足部安全保驾护航

安全生产责任重于泰山。日常说到劳动防护,人们往往先想到的是安全帽、工作服、安全带等身体与头部的防护,从而足部的伤害是较容易被人们所忽视的。其实脚部的防护至关重要,我们在日常工作中常见的足部伤害有:冲击、撞击伤害&#…

CSS中的栅格布局

CSS中的栅格布局 在写前端项目的时候,我之前一直习惯使用flex布局,flex布局写起来比较随心,几乎可以实现任意形式的页面布局。不过自从B占看到某位大佬的grid布局后,发现布局居然还可以这么玩,正好自己在写一个vue3的…

中兴再推爆款,双2.5G网口的巡天AX3000Pro+仅需299元

10月30日消息,中兴新款路由器中兴巡天AX3000Pro将于10月31日20:00正式开售,当前可在天猫、京东及红魔商城进行预约,首发价格299元。 据了解,中兴巡天AX3000Pro是中兴智慧家庭推出的巡天系列新品,也是当前市场上唯一一款300元价位内配备双2.5G网口的路由器。 中兴巡天AX3000Pro…

客户端与服务端实时通讯(轮询、websocket、SSE)

客户端与服务端实时通讯 背景 在某些项目中,某些数据需要展示最新的,实时的,这时候就需要和服务端进行长时间通讯 方案 对于数据实时获取,我们一般会有4种方案: 1.短轮询:使用浏览器的定时器发起http请…

三叠云督察督办解决方案:助力企业高效决策与执行

信息时代的到来,企业面临着日益增长的管理挑战。高竞争的商业环境中,如何实现高效的决策和执行成为了企业迫切需要解决的问题。在现代企业管理中,督察督办工作的重要性也日益凸显。 然而,传统的督察督办模式存在诸多问题&#xff…

JavaScript组合模式

JavaScript组合模式 1 什么是组合模式2 宏命令3 示例:扫描文件夹4 引用父对象 1 什么是组合模式 组合模式是一种结构型设计模式,用于将对象组合成树形结构,并使客户端能够统一处理单个对象和组合对象。它通过使用继承和组合两个概念&#xf…