golang

(156)

golang 实现蓝牙体征监测设备数据上报及存储的频率控制

## 需求背景 蓝牙体征检测设备的初始上报频率非常高,单台每秒 370 个数据包。 需要通过通过服务器向蓝牙网关下发禁止波形数据的指令,禁用掉无用数据的上报。 有两个禁用策略: - 定时下发禁用指令。例如每十秒 - 收到波

调用百度翻译接口自动为文章标题生成网址 slug

## TODO - [X] 中文: 调用翻译接口 - [X] 英文: 无需处理,参考 php 里的处理,拼接,去掉指定词 - [X] 权限控制:仅限 admin 后台调用 - [X] 翻译 api - [X] slug api:

升级 gopls 到最新版本

写了一段单元测试的代码,在 vim 中提示错误 ``` func TestGenSlug(t *testing.T) { assert.Equal(t, "hello-world", genSlug("Hello World")

golang 解析 byte slice 类型的 MQTT 消息 payload

## MQTT Message payload 的类型 可以看到 payload 函数返回 byte slice 类型。 ``` var f mqtt.MessageHandler = func(client mqtt.Clien

订阅 MQTT 主题后,防止 go 程序退出 main

for 循环会彪 CPU,不好。找了一个 channel 的实现有效解决了这一问题。 ## 实现代码 ``` import ( "os" "os/signal" "syscall" ) f

MQTT go 客户端发布消息

为了方便客户端测试,搭建好 [EMQX 服务](/mqtt-broker-open-source-implementation-emqx)之后,需要用 golang 写一个发布消息的测试程序。 用于向指定主题推送消息,这样客户端可以提前测

gin 服务线上没有 systemd 日志的问题

## 原配置 ``` StandardOutput=append:/some_path/log/access.log StandardError=append:/some_path/log/err.log ``` 我确认了目录

gofmt, golint, gopls, govet 的区别

ALEInfo 显示,目前用 NeoVim 打开 go 代码文件时,默认启用了 4 个 linter: > Enabled Linters: ['gofmt', 'golint', 'gopls', 'govet'] 其引起的不

go warnning: composite literal uses unkeyed fields

在启用了 NeoVim ALE 语法检测插件之后,我发现自己的代码到处都是各种警告,无论是 JS 还是 Go。 而 Go 代码中经常出现的警告信息就是 composite literal uses unkeyed fields。 例

go build tag 实现开发环境与生产环境采用不同的 embed.FS 策略

[通过 go embed.FS 将 gin 模板及静态资源文件打包进二进制程序](/gin-embed-fs-compile-static-template-files-into-binaries) 确实非常方便在服务器上部署、更新程序,