UNPKG

ndn-js-contrib

Version:

Reusable 'Classes' for Named Data Networking: NameTree, PIT, FIB, ContentStore, Interfaces, and Transports

83 lines (72 loc) 2.68 kB
var WebSocket = require("ws"); var PeerServer = require("peer").PeerServer; var Face = require("../Face.js") var Interest = require("ndn-js/js/interest.js").Interest; var Name = require("ndn-js/js/name.js").Name; var WebSocketServerTransport = require("./WebSocketServerTransport"); function Node_listen (params){ var self = this; if(params.protocol === "websocket"){ if (!params.port) params.port = (params.http || params.https) ? undefined : 8686; var wsServer = new WebSocket.Server({ port : params.port , server : params.https || params.http , path : params.path }); console.log(wsServer, params.port) wsServer.on("connection", function onClientWebsocket(socket){ var face; console.log("here") Face.Create(new WebSocketServerTransport(socket), function ws_client_Face_onReceivedElement(element){ console.log("element") self.onReceivedElement(element, face); }) .then(function onClientFace(newface){ face = newface; self.onFace(face); }); }); this._servers.push(wsServer); } else if (params.protocol === "webrtc"){ console.log("her") params.port = params.port || 8787; params.path = params.path ||"/" var peerServer = new PeerServer({ port : params.port , path : params.path , ssl : params.ssl }); this._servers.push(peerServer); console.log("!!!!!!!",peerServer); peerServer.on("connection", function(id){ var connectionAnnouncement = new Interest(new Name("localhop/nfd/peer/connect")); console.log("peer connection", id) connectionAnnouncement.getName().append(""+params.port + "#" + id); connectionAnnouncement.setInterestLifetimeMilliseconds(100) console.log("connectionAnnouncement", connectionAnnouncement.name.toUri()) self.expressInterest(connectionAnnouncement) .then(function(){ console.log("got data") }) .catch(function(er){ console.log("timeout") }); }) peerServer.on("disconnect", function(id){ var disconnectAnnouncement = new Interest(new Name("localhop/nfd/peer/diconnect")) console.log("peer disconnection", id) disconnectAnnouncement.getName().append("" +params.port + "#" + id); self.expressInterest(disconnectAnnouncement) .then(function(){ console.log("got data") }) .catch(function(er){ console.log("timeout") }); }) } else if (params.protocol === "tcp"){ } else if (params.protocol === "udp"){ } } module.exports = Node_listen;