Go
文章平均质量分 95
DrmagicE
这个作者很懒,什么都没留下…
展开
-
Gmqtt插件机制详解
在上一篇文章中,我们介绍了Gmqtt的基本特性以及钩子函数的基本使用方法。本篇我们来详细介绍Gmqtt的插件机制,以及如何编写插件。 前文回顾Gmqtt——Go语言实现的MQTT broker 项目地址:https://github.com/DrmagicE/gmqtt session的生命周期 根据MQTT协议规范,每个客户端连接都会有一个与之对应的session,客户端可以指定该session是否需要持久化。对于一个持久化session,即使客户端离线,broker也会为其保留订阅信息以及与其订阅匹原创 2020-12-24 23:58:42 · 1465 阅读 · 3 评论 -
Gmqtt——Go语言实现的MQTT broker
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是用于物联网(IoT)的OASIS标准消息传递协议。发布/订阅是连接远程消息传递设备的理想选择,因为它具有非常小的网络带宽。MQTT目前广泛应用于各种行业,如汽车、制造业、电信、石油和天然气等。 摘自 https://mqtt.org/ 对于MQTT broker,目前主流的实现有EMQ,mosquito,HiveMQ等,但是并没有一个很完整的Go语言实现。目前的开源的Go实现对MQTT协议的支持基本原创 2020-12-24 23:44:37 · 6901 阅读 · 3 评论 -
Go Code Review建议以及自查表
Go Code Review/Checklist 管理Goroutine的生命周期 鲁迅曾经说过:永远不要go一个你无法确他何时退出的routine 一个无法退出的goroutine最可能是阻塞在某些channel上了,对于这种永久阻塞,GC并不会将goroutine停止,并释放内存,这将导致goroutine leak 内存泄漏。 Goroutines can leak by bl...原创 2018-08-12 02:28:27 · 801 阅读 · 0 评论 -
Go的单元测试技巧
单元测试(Unit Test) Go语言原生支持测试工具go test,省去了各种各样测试框架的学习成本。说来也惭愧,写代码这么些年,也从来没有给自己的代码写过单元测试,代码质量的确堪忧。遂花时间学习整理了一下单元测试的基本方法,以及在Go中的实践技巧。 单元测试的难点 以下是我在尝试进行单元测试的过程中遇到的一些难点,在下文中会介绍相应的一些应对方案。 1.掌握单元测试粒度 单元测...原创 2018-09-17 01:10:24 · 3441 阅读 · 0 评论 -
How I organize my applications in Go[转]
Overview For me, the hardest part of learning Go was in structuring my application. Prior to Go, I was working on a Rails application and Rails makes you structure your application in a certain way. “...转载 2018-09-21 20:33:37 · 215 阅读 · 0 评论