Files
OmniSocketGo/README.md
2026-03-23 21:30:37 +08:00

82 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OmniSocketGo
Linux only. Go 1.22.
如果目标机器只运行 `server`,只需要编译并拷贝 `server` 二进制。
如果目标机器只运行 `peer`,只需要编译并拷贝 `peer` 二进制。
`go build ./cmd/server``go 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
```bash
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/server-linux-amd64 ./cmd/server
```
### Linux arm64
```bash
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o bin/peer-linux-arm64 ./cmd/peer
```
### Linux armv7
```bash
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`
```bash
~/omnisocket/server -listen 0.0.0.0:9000
```
每个 `peer` 所在机器连接 `server` 的实际 IP例如 `192.168.1.50:9000`
### peer-a
```bash
~/omnisocket/peer \
-id peer-a \
-server 192.168.1.50:9000 \
-inbox-dir /tmp/peer-a-inbox
```
### peer-b
```bash
~/omnisocket/peer \
-id peer-b \
-server 192.168.1.50:9000 \
-inbox-dir /tmp/peer-b-inbox
```
## Interactive Commands
`peer` 启动后可以在终端里持续使用同一条长连接发送多次消息。
```text
help
text peer-b hello
text peer-a hi
file peer-b /tmp/test.bin
quit
```