关于 libtorrent 部分的相关文档在这里:http ://www.rasterbar.com/products/libtorrent/manual.html#http-seeding和规格是http://bittorrent.org/beps/bep_0019.html和http ://bittorrent.org/beps/bep_0017.html(libtorrent 都支持,作为“url 种子”和“http 种子”)。
IIRC、BEP19(webseeds 或 urlseeds)从服务器 POV 相当直接,您不需要在那里做任何特别的事情 - 您只需像处理对该文件的正常 HTTP 请求一样提供文件(所以,您问题的第二部分在这里不太有意义)。
使用 BEP17,您宁愿使用唯一的 http 端点,并通过它获取参数以指定客户端想要的内容(例如,允许更好的节流控制和范围选择)(例如:http ://example.com/seed/?info_hash =X&piece=Y&ranges=Z )。
如果您打算对下载的内容进行更多(编程)控制,则第二种方法更加灵活,但显然需要编写更多代码来处理请求。
同样,从服务器 POV 来看,这与常规 HTTP 事务没有什么不同,这里的“播种”没有什么特别之处。您只需提供文件(每个文件都有自己的 url,直接或通过处理程序)。
对于元数据部分,使用 BEP19,您添加一个“url-list”扩展名(带有文件的完整 url:http ://example.com/seeds/SOMEFILE.txt - 注意多文件种子),而 BEP17 使用密钥“httpseeds”(使用您的端点,例如:http ://example.com/seed/ )。
根据您的 Jetty 是否也处理元数据生成,您可能更喜欢 BEP19 而不是 BEP17,因为您的 url 更可预测/元数据生成更简单......
希望有帮助。