Skip to content

JavaScript implementation of the TCP module that libp2p uses that implements the abstract-transport interface

License

Notifications You must be signed in to change notification settings

hackergrrl/js-libp2p-tcp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-libp2p-tcp

Build Status Dependency Status js-standard-style

Node.js implementation of the TCP module that libp2p uses, which implements the interface-connection interface for dial/listen.

Description

libp2p-tcp in Node.js is a very thin shim that adds the support to dial to a multiaddr. This small shim will enable libp2p to use other different transports.

Example

const Tcp = require('libp2p-tcp')
const multiaddr = require('multiaddr')

const mh1 = multiaddr('/ip4/127.0.0.1/tcp/9090')
const mh2 = multiaddr('/ip6/::/tcp/9092')

const tcp = new Tcp()

tcp.createListener([mh1, mh2], function handler (socket) {
  console.log('connection')
  socket.end('bye')
}, function ready () {
  console.log('ready')

  const client = tcp.dial(mh1)
  client.pipe(process.stdout)
  client.on('end', () => {
    tcp.close(function(){})
  })
})

outputs

ready
connection
bye

Installation

npm

> npm i libp2p-tcp

API

const Tcp = require('libp2p-tcp')

var tcp = new Tcp()

Creates a new TCP object. This does nothing on its own but provide access to dial and createListener.

tcp.createListener(multiaddrs, handler, callback)

Creates TCP servers that listen on the addresses described in the array multiaddrs. Each connection will call handler with a connection stream. callback is called once all servers are listening.

tcp.dial(multiaddr, options={})

Connects to the multiaddress multiaddr using TCP, returning the socket stream. If options.ready is set to a function, it is called when a connection is established.

tcp.close(callback)

Closes all the listening TCP servers, calling callback once all of them have been shut down.

License

MIT

About

JavaScript implementation of the TCP module that libp2p uses that implements the abstract-transport interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%