#udp #p2p #tracker #server #client-server #service #sobani

app sobani-tracker

使用 Rust 编写的 Sobani 跟踪服务器,为 Sobani 用户提供跟踪服务

1 个不稳定版本

0.1.0 2020年4月17日

60#tracker

MIT 许可证

20KB
182

sobani-tracker

简介

旨在为 sobani 服务和客户端设置跟踪服务器

设置

克隆到您的实例

git clone https://github.com/BlueCocoa/sobani-tracker-rust.git

编译

cd sobani-tracker-rust
cargo build --release

启动服务器

cargo run --release

API 文档

操作

announce

公告操作与从对等方到服务器的第一个连接相关,在此操作中,客户端向跟踪服务器发送三个参数,以记录并使共享操作成为可能。

如果发送成功,将返回一个 公告 对象。

字段 类型 必需 描述
action 字符串 固定值,"announce"

期望从服务器返回的响应

{
  "action": "announced",
  "data": {
    "shareId": "1AbhoECj"
  }
}

alive

alive 操作旨在通过快速向服务器发送数据包来报告客户端的 Alive 状态,以维护连接和共享会话的有效性和可能性。通过这样做,服务器将在客户端活跃时存储会话和 shareId,如果客户端停止发送数据包,服务器将删除之前宣布的相关 shareId 和 multiaddr。(默认过期时间为 5 分钟)

push

推送操作告诉服务器对等方共享的目标客户端的唯一 shareId。跟踪服务器将对请求客户端返回 IP:Port,依此类推,客户端可以尝试建立连接。

如果发送成功,将返回一个 推送 消息。

字段 类型 必需 描述
action 字符串 固定值,"push"
data 字典 请求者的信息

以下展示了推送数据

字段 类型 必需 描述
peeraddr 字符串 IP:端口
peerShareId 字符串 ShareId

期望从服务器返回的响应

{
  "action": "pushed",
  "data": {
    "peeraddr": "1.2.3.4:23333",
    "peerShareId": "1AbhoECj"
  }
}

此外,跟踪器还将向请求者发送一个 income 消息

字段 类型 必需 描述
action 字符串 固定值,"income"
data 字典 请求者的信息

以下展示了收入数据

字段 类型 必需 描述
peeraddr 字符串 IP:端口
peerShareId 字符串 ShareId

期望从服务器返回的收入消息

{
  "action": "income",
  "data": {
    "peeraddr": "1.2.3.4:23333",
    "peerShareId": "1AbhoECj"
  }
}

类型

announced

字段 类型 必需 描述
action 字符串 固定值,"announced"
data 字典
公告数据
字段 类型 必需 描述
shareId 字符串 由服务器端生成的 shareId

pushed

字段 类型 必需 描述
action 字符串 固定值,"pushed"
data 字典
推送数据
字段 类型 必需 描述
peeraddr 字符串 IP:端口
peerShareId 字符串 ShareId

income

字段 类型 必需 描述
action 字符串 固定值,"income"
data 字典
收入数据
字段 类型 必需 描述
peeraddr 字符串 IP:端口
peerShareId 字符串 ShareId

依赖关系

~10–21MB
~292K SLoC