1 个不稳定版本
0.1.0 | 2020年4月17日 |
---|
60 在 #tracker
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