@@ -4,13 +4,15 @@ const promisify = require('promisify-es6')
44const OFFLINE_ERROR = require ( '../utils' ) . OFFLINE_ERROR
55const PeerId = require ( 'peer-id' )
66const PeerInfo = require ( 'peer-info' )
7- const Readable = require ( 'readable-stream' ) . Readable
7+ const pull = require ( 'pull-stream/pull' )
8+ const take = require ( 'pull-stream/throughs/take' )
9+ const Pushable = require ( 'pull-pushable' )
10+ const ndjson = require ( 'pull-ndjson' )
811
912function getPacket ( msg ) {
1013 // Default msg
1114 const basePacket = { Success : false , Time : 0 , Text : '' }
12- // ndjson
13- return `${ JSON . stringify ( Object . assign ( { } , basePacket , msg ) ) } \n`
15+ return Object . assign ( { } , basePacket , msg )
1416}
1517
1618module . exports = function ping ( self ) {
@@ -19,10 +21,15 @@ module.exports = function ping (self) {
1921 return cb ( new Error ( OFFLINE_ERROR ) )
2022 }
2123
22- const source = new Readable ( {
23- read : function ( ) { }
24+ const source = Pushable ( function ( err ) {
25+ console . log ( 'stream closed!' , err )
2426 } )
2527
28+ const response = pull (
29+ source ,
30+ ndjson . serialize ( )
31+ )
32+
2633 let peer
2734 try {
2835 peer = self . _libp2pNode . peerBook . get ( peerId )
@@ -34,21 +41,33 @@ module.exports = function ping (self) {
3441 }
3542
3643 self . _libp2pNode . ping ( peer , ( err , p ) => {
44+ if ( err ) {
45+ console . log ( 'ERROR' , err )
46+ return source . abort ( err )
47+ }
3748 let packetCount = 0
3849 let totalTime = 0
3950 source . push ( getPacket ( { Success : true , Text : `PING ${ peerId } ` } ) )
4051 p . on ( 'ping' , ( time ) => {
52+ console . log ( 'ON PING' )
4153 source . push ( getPacket ( { Success : true , Time : time } ) )
4254 totalTime += time
4355 packetCount ++
56+ console . log ( packetCount , count )
4457 if ( packetCount >= count ) {
4558 const average = totalTime / count
4659 p . stop ( )
4760 source . push ( getPacket ( { Success : false , Text : `Average latency: ${ average } ms` } ) )
48- source . push ( null )
61+ source . end ( )
4962 }
5063 } )
64+ console . log ( 'Setup handler' )
65+ p . on ( 'error' , ( err ) => {
66+ console . log ( 'ERROR BATATA' , err )
67+ source . abort ( err )
68+ } )
5169 } )
52- cb ( null , source )
70+
71+ cb ( null , response )
5372 } )
5473}
0 commit comments