Skip to content

用于收集终端通过UDP、HTTP、MQTT和TCP发送过来的报文

Notifications You must be signed in to change notification settings

CoderIvan/go-echo-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-echo-server

客户端

HTTP

  • 客户端使用HTTP协议POST方向,发送数据
  • Body内容可以为application/json,也可以为text/plain,建议使用JSON格式,方便解析与统计
  • tagName标记为http-server
  • 在服务地址后可以追加项目名(projectName),即http://localhost/:projectName
    • 例如http://localhost/ivan,则项目名为ivan

UDP

  • 客户端使用UDP发送数据
  • 服务器接收到的二进制内容均使用UTF-8解码成文本,建议文本内容使用JSON格式,方便解析与统计
  • tagName标记为udp-server
  • 在UDP包前可以追加$ + 项目名(projectName) + #,即${{projectName}}#{{内容}}
    • 例如"$ivan#{\"sn\":\"0000000004\",\"iccid\":\"90000000000000000004\",\"imei\":\"900000000000004\",\"random\":\"Some bytes:0.17507057398090065\"}",则项目名为ivan

MQTT

  • 客户端使用MQTT发送数据
  • 服务器接收到的二进制内容均使用UTF-8解码成文本,建议文本内容使用JSON格式,方便解析与统计
  • tagName标记为mqtt-server
  • client id最好填sn之类的唯一标识,最终显示为contextID
  • username最好填项目名之类的,最终显示为projectName

TCP

  • 客户端使用TCP发送数据
  • 报文内容,为两字节报长度+报文内容
    • 如发送48 65 6c 6c 6f 20 57 6f 72 6c 64,则要在前面加上长度11,即00 0b,最终为00 0b 48 65 6c 6c 6f 20 57 6f 72 6c 64
  • 服务器接收到的二进制内容均使用UTF-8解码成文本,建议文本内容使用JSON格式,方便解析与统计
  • tagName标记为tcp-server
  • 如果第一个包使用$ + 项目名(projectName) + # + 上下文ID(contextID) + #
    • 例如:$BigProject#Ivan#,则项目名为BigProject,上下文ID为Ivan
  • 上下文ID建议使用SN之类的唯一标识

GRPC

服务器

win10

执行

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io
go build .
.\go-echo-server.exe

运行

go run main

单元测试

go test go-echo-server/server -v
go test go-echo-server/handler -v

覆盖率测试

go test go-echo-server/server -cover
go test go-echo-server/handler -cover

基准测试

go test -benchmem -run=^$ -bench . go-echo-server/server

About

用于收集终端通过UDP、HTTP、MQTT和TCP发送过来的报文

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published