Articles of p2p

这真的是P2P?

我在这里使用socket.io–p2p尝试发送图像文件。 由于它是p2p,我认为该文件没有被上传到服务器,并且直接发送到连接的对等端。 我设法用我有的代码传输一个文件,但我很不确定这是否是一个真正的P2P传输,因为在我看来,该文件是上传到我的服务器,然后发送到另一个对端,而不是一个实际的P2P两个设备之间的连接。 无论是在标签之间还是在不同networking上的两个不同设备之间发送文件,我都会在DU Meter中上传和下载尖峰。 我知道信号部分是在我的服务器上完成的,但是如果这是真正的p2p,那应该是关于它的。 当然,我可能是错的,所以我要求评估。 你们有什么感想? server.js var app = require("express")(); var express = require("express"); var server = require("http").Server(app); var p2pserver = require("socket.io-p2p-server").Server; var io = require("socket.io")(server); var ss = require("socket.io-stream"); var path = require("path"); app.use(express.static(__dirname)); io.use(p2pserver); var peerNum = 0; io.on("connection", function(socket) { console.log("Peer " + peerNum + " connected"); io.emit("peer-num", peerNum); […]

p2p / NodeJS:未logging的代码不会告诉我们如何通过networking发送消息

我们处于停滞状态,希望能够恢复活力。 我们唯一的问题是,它缺less这么多的文档,几乎无法使用。 我们可以连接到networking,当人们连接,断开连接以及所有人都在线时显示。 这里是有问题的回购。 要留意的文件是/lib/node.js(不要与NodeJS本身混淆)。 这是我们必须展示的: var Node = require('n2n').Node; var node = new Node(5146); console.log("Connecting to the network…\n\n\n"); node.connect([{ host: 'bradleypl.us', port: 5146 }]); node.on('online', function () { console.log('Your ID:', this.id); console.log('Online ids:', node.sortedIds); }); //just for testing, this will spam the terminal if repeated every time. node.on('node::online', function (newNode) { console.log('Someone is online:', […]

有BitTorrent协议的问题

我正在尝试为一个学校项目做一个简单的BitTorrent跟踪器。 它现在完全被黑了,但我无法find我要去哪里错了。 我想知道我是否对服务器响应应该有什么误解。 我正在使用node.js和expression。 服务器接收/ GET请求与?info_hash数据没有问题。 而且我可以将这些信息保存到JSON文件中。 服务器也能够使用本码编码来响应客户端。 答案是有一个间隔和一个同龄人列表的字典。 列表中有几个字典,每个字典都包含对等体的IP和端口。 目前,虽然没有一个同行会互相连接。 我将把我的笔记本电脑放在与我的桌面不同的networking上,并且将桌面视为一个潜在的对等点,正确的IP和端口(据我所知),但过了一会儿,它就从对等列表中删除。 我在每个客户端上使用deluge和qBitTorrent。 这里是应用程序的代码: var express = require('express'); var app = express(); var fs = require("fs"); var contents = fs.readFileSync("data.json"); var data = JSON.parse(contents); var findTorrent = function(data, hash) { for(var i = 0; i < data.length; i++) { if(data[i].info_hash === hash) { return data[i]; […]

在STUN服务器上实现XOR-MAPPED-ADDRESS属性

从RFC 5389第15.2节 : 如果IP地址系列是IPv4,则通过以主机字节顺序取得映射IP地址,与魔术cookie异或,并将结果转换为networking字节顺序来计算X地址。 如果IP地址族是IPv6,则通过以主机字节顺序取得映射的IP地址来计算X地址,将其与魔术cookie和96位事务ID的串联进行异或,并将结果转换为networking字节订购。 我在Node.JS中编写了一个STUN服务器,我试图理解如何去异或128位的值。 我感觉好像它将涉及使用Buffer模块中的这些function之一,尽pipe它表示它只支持最多48位。 有关如何为IPv6地址实现128位XOR运算符的任何build议?

闪存套接字,对等function

快速介绍:我们已经完成了一个Flash俄罗斯方块游戏,我们正在寻找添加多人游戏function。 在对闪存和sockets的function进行了几天的研究后,我感到更加困惑。 一个快速的声明,我是一般的sockets/networking新手。 从我在线收集的信息来看,由于策略系统的原因,一般的flash tcp套接字无法处理对等连接。 为了使闪存做p2p,必须使用支持RTMFP的服务器(例如闪存介质服务器等)来处理初始握手,并且从那里闪存能够以p2p方式传递数据。 编辑:查看问题的全面更新的第一个答案。

是否有可能在不同的networking中创build点对点连接?

我想创build2个nodejs客户端之间的点对点连接。 使用websocket(dnode) 这里是极限: nodejs客户端运行在两台不同的networking上。 它们在NAT或防火墙后面没有静态IP(192.168.1.100 && 192.168.2.200) 没有权限更改路由器的映射。 在公共networking中只有静态Web服务器。 (可以通过人工更改文件) 可以在PC上安装应用程序(win) 可能吗? 谢谢

使用IPFS的分散式聊天应用程序

我正在使用nodejs , expressjs , angularjs , socket.io和ipfs编写一个分散的聊天应用程序。我使用libp2p来形成将通过打开的连接相互通信的节点。 Libp2p是一个IPFS项目模块化的networking堆栈。 Libp2p允许我构build能够托pipeswarm或者listening/ dialing nodes 。 我已经发展到几个节点可以通过angularjs(由socket.io补充)网页的input相互通信的点,但是它们的IP地址和tcp端口需要被硬编码。 我面对的问题是,如果有不明身份的用户join这个系统并设置他们的节点,我该如何处理这个情况。 我已经对DHT进行了大量的研究,特别是将其应用于山洪,但是实际上并没有实际应用。 我不想运行一个跟踪用户的中央系统,因为跟踪者跟踪种子和洪stream中的浸入者(现在由于DHT而有些多余) 在一个集中式聊天应用程序中,每次用户进入或离开时,我都可以从服务器向所有使用socket.io信号发送的对等方发送事件。 但是,在分散的聊天应用程序中的等价物是我正在苦苦挣扎的事情。 我需要一些指导。

什么是超驱动,和dat有什么不同?

我一直在尝试进入dat,我想知道dat和hyperdrive模块之间的区别。

在Javascript中可以实现端到端的encryption吗?

我目前正在研究创build一个(peer2peer)消息客户端的encryption方面的可能性,从而安全。 此应用程序将基于Web技术(如果可能)。 我的问题是:只有javascript(client&node.js / peer.js)的端到端encryption是可能的吗? 如果是:查看HMAC(RSA)类encryption技术是否正确? 我已经试着了解一下这些库是如何工作的,但是到目前为止我还没有运气。 lib的我觉得很有趣,但我不(完全)理解和知道如何实现(在这个用例中): http://bitwiseshiftleft.github.io/sjcl/ https://github.com/Caligatio/jsSHA https://code.google.com/p/crypto-js/ 如果需要,我可以尝试详细说明。 更新:应用程序将成为一个移动应用程序。 networking技术的使用是一个概念validation。

可以Node.js运行在客户端与Chrome的本地客户端(即将发布)

Google Chrome的本地客户即将发布。 http://blog.chromium.org/2011/02/native-client-getting-ready-for-takeoff.html这将允许node.js在浏览器中运行,使分布式应用程序彼此进行通信,而无需通过服务器?