js-libp2p-websocket-star-multi

所属分类:JavaScript/JQuery
开发工具:JavaScript
文件大小:13KB
下载次数:0
上传日期:2020-06-10 10:37:26
上 传 者sh-1993
说明:  允许在多个websocket星形服务器上侦听,同时忽略脱机服务器
(Allows to listen on multiple websocket-star servers while ignoring offline ones)

文件列表:
.aegir.js (719, 2020-06-10)
.jshintrc (70, 2020-06-10)
.travis.yml (381, 2020-06-10)
CHANGELOG.md (2387, 2020-06-10)
appveyor.yml (429, 2020-06-10)
example.js (1796, 2020-06-10)
package.json (1569, 2020-06-10)
src (0, 2020-06-10)
src\index.js (2700, 2020-06-10)
test (0, 2020-06-10)
test\.jshintrc (87, 2020-06-10)
test\ids.json (6308, 2020-06-10)
test\listen-and-dial.spec.js (4240, 2020-06-10)

DEPRECATED: libp2p-websocket-star-multi is not supported anymore from [libp2p@0.27.0](https://github.com/libp2p/js-libp2p/releases/tag/v0.27.0). Check [js-libp2p/doc/CONFIGURATION.md](https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md) for what modules are currently supported. # libp2p-websocket-star-multi [![](https://img.shields.io/badge/made%20by-mkg20001-blue.svg?style=flat-square)](http://ipn.io) [![Build Status](https://travis-ci.org/libp2p/js-libp2p-websocket-star.svg?style=flat-square)](https://travis-ci.org/libp2p/js-libp2p-websocket-star) ![](https://raw.githubusercontent.com/libp2p/interface-connection/master/img/badge.png) ![](https://raw.githubusercontent.com/libp2p/interface-transport/master/img/badge.png) > Allows to listen on multiple websocket-star-rendezvous servers while ignoring offline ones ## Description `libp2p-websocket-star-multi` allows to listen on multiple websocket-star-rendezvous servers while ignoring offline ones **Note:** This module uses [pull-streams](https://pull-stream.github.io) for all stream based interfaces. ## Usage ### Installation ```bash > npm install libp2p-websocket-star ``` ### API [![](https://raw.githubusercontent.com/libp2p/interface-transport/master/img/badge.png)](https://github.com/libp2p/interface-transport) ### Example ```js 'use strict' const Libp2p = require('libp2p') const Id = require('peer-id') const Info = require('peer-info') const multiaddr = require('multiaddr') const pull = require('pull-stream') const WSStarMulti = require('libp2p-websocket-star-multi') Id.create((err, id) => { if (err) throw err const peerInfo = new Info(id) peerInfo.multiaddrs.add(multiaddr('/p2p-websocket-star')) // will get replaced to the multiaddr of the individual servers const ws = new WSStarMulti({ servers: [ // servers are Multiaddr[] '/dnsaddr/ws-star-signal-1.servep2p.com/tcp/443/wss/p2p-websocket-star', '/dnsaddr/ws-star-signal-2.servep2p.com/tcp/443/wss/p2p-websocket-star', '/dnsaddr/ws-star-signal-3.servep2p.com/tcp/443/wss/p2p-websocket-star', '/dnsaddr/ws-star-signal-4.servep2p.com/tcp/443/wss/p2p-websocket-star', '/dnsaddr/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-websocket-star', '/dns4/localhost/tcp/80/ws/p2p-websocket-star' ], // ignore_no_online: true, // enable this to prevent wstar-multi from returning a listen error if no servers are online id // the id is required for the crypto challenge }) const modules = { transport: [ ws ], discovery: [ ws.discovery ] } const node = new Libp2p(modules, peerInfo) node.handle('/test/1.0.0', (protocol, conn) => { pull( pull.values(['hello']), conn, pull.map((s) => s.toString()), pull.log() ) }) node.start((err) => { if (err) { throw err } node.dial(peerInfo, '/test/1.0.0', (err, conn) => { if (err) { throw err } pull( pull.values(['hello from the other side']), conn, pull.map((s) => s.toString()), pull.log() ) }) }) }) ``` Outputs: ``` hello hello from the other side ``` ### This module uses `pull-streams` We expose a streaming interface based on `pull-streams`, rather then on the Node.js core streams implementation (aka Node.js streams). `pull-streams` offers us a better mechanism for error handling and flow control guarantees. If you would like to know more about why we did this, see the discussion at this [issue](https://github.com/ipfs/js-ipfs/issues/362). You can learn more about pull-streams at: - [The history of Node.js streams, nodebp April 2014](https://www.youtube.com/watch?v=g5ewQEuXjsQ) - [The history of streams, 2016](http://dominictarr.com/post/145135293917/history-of-streams) - [pull-streams, the simple streaming primitive](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple) - [pull-streams documentation](https://pull-stream.github.io/) #### Converting `pull-streams` to Node.js Streams If you are a Node.js streams user, you can convert a pull-stream to a Node.js stream using the module [`pull-stream-to-stream`](https://github.com/pull-stream/pull-stream-to-stream), giving you an instance of a Node.js stream that is linked to the pull-stream. For example: ```js const pullToStream = require('pull-stream-to-stream') const nodeStreamInstance = pullToStream(pullStreamInstance) // nodeStreamInstance is an instance of a Node.js Stream ``` To learn more about this utility, visit https://pull-stream.github.io/#pull-stream-to-stream. LICENSE MIT

近期下载者

相关文件


收藏者