@@ -579,6 +579,59 @@ Server.prototype._onWebSocketRequest = function (socket, opts, params) {
579579 } )
580580}
581581
582+ Server . prototype . _onWebSocketSend = function ( socket , err ) {
583+ var self = this
584+ if ( err ) self . _onWebSocketError ( socket , err )
585+ }
586+
587+ Server . prototype . _onWebSocketClose = function ( socket ) {
588+ var self = this
589+ debug ( 'websocket close %s' , socket . peerId )
590+
591+ if ( socket . peerId ) {
592+ socket . infoHashes . slice ( 0 ) . forEach ( function ( infoHash ) {
593+ var swarm = self . torrents [ infoHash ]
594+ if ( swarm ) {
595+ swarm . announce ( {
596+ type : 'ws' ,
597+ event : 'stopped' ,
598+ numwant : 0 ,
599+ peer_id : socket . peerId
600+ } , noop )
601+ }
602+ } )
603+ }
604+
605+ // ignore all future errors
606+ socket . onSend = noop
607+ socket . on ( 'error' , noop )
608+
609+ socket . peerId = null
610+ socket . infoHashes = null
611+
612+ if ( typeof socket . onMessageBound === 'function' ) {
613+ socket . removeListener ( 'message' , socket . onMessageBound )
614+ }
615+ socket . onMessageBound = null
616+
617+ if ( typeof socket . onErrorBound === 'function' ) {
618+ socket . removeListener ( 'error' , socket . onErrorBound )
619+ }
620+ socket . onErrorBound = null
621+
622+ if ( typeof socket . onCloseBound === 'function' ) {
623+ socket . removeListener ( 'close' , socket . onCloseBound )
624+ }
625+ socket . onCloseBound = null
626+ }
627+
628+ Server . prototype . _onWebSocketError = function ( socket , err ) {
629+ var self = this
630+ debug ( 'websocket error %s' , err . message || err )
631+ self . emit ( 'warning' , err )
632+ self . _onWebSocketClose ( socket )
633+ }
634+
582635Server . prototype . _onRequest = function ( params , cb ) {
583636 var self = this
584637 if ( params && params . action === common . ACTIONS . CONNECT ) {
@@ -761,59 +814,6 @@ function makeUdpPacket (params) {
761814 return packet
762815}
763816
764- Server . prototype . _onWebSocketSend = function ( socket , err ) {
765- var self = this
766- if ( err ) self . _onWebSocketError ( socket , err )
767- }
768-
769- Server . prototype . _onWebSocketClose = function ( socket ) {
770- var self = this
771- debug ( 'websocket close %s' , socket . peerId )
772-
773- if ( socket . peerId ) {
774- socket . infoHashes . forEach ( function ( infoHash ) {
775- var swarm = self . torrents [ infoHash ]
776- if ( swarm ) {
777- swarm . announce ( {
778- type : 'ws' ,
779- event : 'stopped' ,
780- numwant : 0 ,
781- peer_id : socket . peerId
782- } , noop )
783- }
784- } )
785- }
786-
787- // ignore all future errors
788- socket . onSend = noop
789- socket . on ( 'error' , noop )
790-
791- socket . peerId = null
792- socket . infoHashes = null
793-
794- if ( typeof socket . onMessageBound === 'function' ) {
795- socket . removeListener ( 'message' , socket . onMessageBound )
796- }
797- socket . onMessageBound = null
798-
799- if ( typeof socket . onErrorBound === 'function' ) {
800- socket . removeListener ( 'error' , socket . onErrorBound )
801- }
802- socket . onErrorBound = null
803-
804- if ( typeof socket . onCloseBound === 'function' ) {
805- socket . removeListener ( 'close' , socket . onCloseBound )
806- }
807- socket . onCloseBound = null
808- }
809-
810- Server . prototype . _onWebSocketError = function ( socket , err ) {
811- var self = this
812- debug ( 'websocket error %s' , err . message || err )
813- self . emit ( 'warning' , err )
814- self . _onWebSocketClose ( socket )
815- }
816-
817817function toNumber ( x ) {
818818 x = Number ( x )
819819 return x >= 0 ? x : false
0 commit comments