是否可以仅使用HTML(5)和JavaScript构建torrent客户端?

qui*_*lby 46 html javascript html5 bittorrent websocket

还有更多要补充的内容.是否可以仅使用HTML和JavaScript构建torrent客户端.你不能使用像Java,ActiveX,NaCl这样的东西......如果是的话,请给出高级描述.

我对前端dev没有太多了解,但我认为websockets能够进行网络连接(是否可以将一个客户端连接到另一个客户端,而不需要通过服务器获取所有数据?).我知道您无法使用JavaScript编写文件,所以我认为要下载的文件必须完全保存在内存中,否则客户端必须使用HTML5中的一个新API来存储内容.

小智 32

不,这不对.

这是因为WebSocket规范不属于HTML5和JavaScript ;-)话虽如此,提出"使用[渐进式/即将推出的]浏览器本机支持的功能"然后......

...仍然没有 :-)

这是因为WebSocket需要特殊的握手来设置限制.这不是一个免费的开放式TCP-fest.这种方法也需要

  1. 要修改的客户端以接受WebSocket请求(以及处理任何跨站点访问问题)

  2. 或者,更现实地说,服务器可以反弹

  • 在支持WebRTC的最新浏览器中似乎已经解决了这个问题:https://github.com/feross/webtorrent (2认同)

Yah*_*hor 16

这可以使用Chrome Apps API:chrome.socketchrome.fileSystem.

Google Chrome至少有一个纯JavaScript实现:JSTorrent.


Lau*_* VB 15

最近基于WebRTC的实现在节点和浏览器中工作:https: //github.com/feross/webtorrent


kza*_*hel 9

今天无法做到这一点是没有充分理由的.BitTorrent/uTorrent都有代码支持二进制帧的websocket连接.但是,它们目前是在没有支持的情况下编译的(由于政治/产品原因,我认为).我曾经在BitTorrent工作,另一位工程师(Arty)写了支持.有一段时间,能够从移动Safari下载种子到iPad上真的很酷.(足够有趣地直接保存到Google云端硬盘)

HTTP跟踪器可以配置为发送Access-Control-Allow-Origin标头.

跟踪器通告协议也可以使用"密钥"字段中的一个位来指示客户端接受websocket连接.然后像"typewant"这样的特殊参数可能表明通知响应应该只返回已发送该位的客户端.

跟踪器协议也可以类似地扩展以支持WebRTC P2P DataChannel连接的协商,以便可以直接在浏览器< - >浏览器中建立连接.

目前,我们有chrome.socket平台API和jstorrent,Chrome打包应用程序(主要针对ChromeOS设计)


CAF*_*FxX 8

您不能使用WebSockets,因为它们是严格的客户端 - 服务器.但即将推出的WebRTC标准虽然主要针对音频/视频会议,但它提供了通用的客户端 - 客户端数据传输.如果此规定使其达到最终版本,那么您将有一种可行的方法在浏览器之间实现通用的对等数据传输.