2026-03-24 16:20:34 +08:00
2026-03-24 15:39:00 +08:00
2026-03-24 12:05:23 +08:00
2026-03-24 16:08:13 +08:00
2026-03-24 12:05:23 +08:00
2026-03-23 20:18:53 +08:00

OmniSocketGo

Linux only. Go 1.22.

如果目标机器只运行 server,只需要编译并拷贝 server 二进制。 如果目标机器只运行 peer,只需要编译并拷贝 peer 二进制。

go build ./cmd/servergo build ./cmd/peer 会把各自依赖到的功能一起编译进最终二进制,不需要再单独编译 cmd/internal/... 包。

  • server 二进制会包含它依赖到的转发、协议、传输等代码
  • peer 二进制会包含它依赖到的注册、交互发送、接收落盘、协议、传输等代码
  • 只有没有被这个可执行程序引用的其他命令,才不在该二进制里,比如 cmd/latencysummary

Build

按目标架构分别编译。 mkdir -p bin go build -o bin/server ./cmd/server go build -o bin/peer ./cmd/peer go build -o bin/latencysummary ./cmd/latencysummary

Linux amd64

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/server-linux-amd64 ./cmd/server

Linux arm64

CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o bin/peer-linux-arm64 ./cmd/peer

Linux armv7

CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -o bin/server-linux-armv7 ./cmd/server
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -o bin/peer-linux-armv7 ./cmd/peer

Run On Different Machines

server 所在机器监听 0.0.0.0:9000

~/omnisocket/server -listen 0.0.0.0:9000

每个 peer 所在机器连接 server 的实际 IP例如 192.168.1.50:9000

peer-a

~/omnisocket/peer \
  -id peer-a \
  -server 192.168.1.50:9000 \
  -inbox-dir /tmp/peer-a-inbox

peer-b

~/omnisocket/peer \
  -id peer-b \
  -server 192.168.1.50:9000 \
  -inbox-dir /tmp/peer-b-inbox

Interactive Commands

peer 启动后可以在终端里持续使用同一条长连接发送多次消息。

help
text peer-b hello
text peer-a hi
file peer-b /tmp/test.bin
quit

自动化拉取更新汇总数据

cd /home/limingjie/LMJ_Work/OmniSocketGo ./scripts/refresh-latency-summary.sh

Description
No description provided
Readme 4.8 MiB
Languages
Go 56.7%
C 37.6%
Shell 5.5%
Makefile 0.2%