@@ -535,11 +535,11 @@ SCServer.prototype._isPrivateTransmittedEvent = function (event) {
535
535
return ! ! event && event . indexOf ( '#' ) == 0 ;
536
536
} ;
537
537
538
- SCServer . prototype . verifyInboundEvent = function ( socket , event , data , cb ) {
538
+ SCServer . prototype . verifyInboundEvent = function ( socket , eventName , eventData , cb ) {
539
539
var request = {
540
540
socket : socket ,
541
- event : event ,
542
- data : data
541
+ event : eventName ,
542
+ data : eventData
543
543
} ;
544
544
545
545
var token = socket . getAuthToken ( ) ;
@@ -578,15 +578,15 @@ SCServer.prototype._passThroughMiddleware = function (options, cb) {
578
578
579
579
if ( this . _isPrivateTransmittedEvent ( event ) ) {
580
580
if ( event == this . _subscribeEvent ) {
581
- var data = options . data || { } ;
582
- request . channel = data . channel ;
583
- request . waitForAuth = data . waitForAuth ;
584
- request . data = data . data ;
581
+ var eventData = options . data || { } ;
582
+ request . channel = eventData . channel ;
583
+ request . waitForAuth = eventData . waitForAuth ;
584
+ request . data = eventData . data ;
585
585
586
586
if ( request . waitForAuth && request . authTokenExpiredError ) {
587
587
// If the channel has the waitForAuth flag set, then we will handle the expiry quietly
588
588
// and we won't pass this request through the subscribe middleware.
589
- cb ( request . authTokenExpiredError ) ;
589
+ cb ( request . authTokenExpiredError , eventData ) ;
590
590
} else {
591
591
async . applyEachSeries ( this . _middleware [ this . MIDDLEWARE_SUBSCRIBE ] , request ,
592
592
function ( err ) {
@@ -601,37 +601,43 @@ SCServer.prototype._passThroughMiddleware = function (options, cb) {
601
601
self . emit ( 'warning' , err ) ;
602
602
}
603
603
}
604
- cb ( err ) ;
604
+ if ( request . data !== undefined ) {
605
+ eventData . data = request . data ;
606
+ }
607
+ cb ( err , eventData ) ;
605
608
}
606
609
}
607
610
) ;
608
611
}
609
612
} else if ( event == this . _publishEvent ) {
610
613
if ( this . allowClientPublish ) {
611
- var data = options . data || { } ;
612
- request . channel = data . channel ;
613
- request . data = data . data ;
614
+ var eventData = options . data || { } ;
615
+ request . channel = eventData . channel ;
616
+ request . data = eventData . data ;
614
617
615
618
async . applyEachSeries ( this . _middleware [ this . MIDDLEWARE_PUBLISH_IN ] , request ,
616
619
function ( err ) {
617
620
if ( callbackInvoked ) {
618
621
self . emit ( 'warning' , new InvalidActionError ( 'Callback for ' + self . MIDDLEWARE_PUBLISH_IN + ' middleware was already invoked' ) ) ;
619
622
} else {
620
623
callbackInvoked = true ;
624
+ if ( request . data !== undefined ) {
625
+ eventData . data = request . data ;
626
+ }
621
627
if ( err ) {
622
628
if ( err === true ) {
623
629
err = new SilentMiddlewareBlockedError ( 'Action was silently blocked by ' + self . MIDDLEWARE_PUBLISH_IN + ' middleware' , self . MIDDLEWARE_PUBLISH_IN ) ;
624
630
} else if ( self . middlewareEmitWarnings ) {
625
631
self . emit ( 'warning' , err ) ;
626
632
}
627
- cb ( err ) ;
633
+ cb ( err , eventData ) ;
628
634
} else {
629
635
self . exchange . publish ( request . channel , request . data , function ( err ) {
630
636
if ( err ) {
631
637
err = new BrokerError ( err ) ;
632
638
self . emit ( 'warning' , err ) ;
633
639
}
634
- cb ( err ) ;
640
+ cb ( err , eventData ) ;
635
641
} ) ;
636
642
}
637
643
}
@@ -640,11 +646,11 @@ SCServer.prototype._passThroughMiddleware = function (options, cb) {
640
646
} else {
641
647
var noPublishError = new InvalidActionError ( 'Client publish feature is disabled' ) ;
642
648
self . emit ( 'warning' , noPublishError ) ;
643
- cb ( noPublishError ) ;
649
+ cb ( noPublishError , options . data ) ;
644
650
}
645
651
} else {
646
652
// Do not allow blocking other reserved events or it could interfere with SC behaviour
647
- cb ( ) ;
653
+ cb ( null , options . data ) ;
648
654
}
649
655
} else {
650
656
request . event = event ;
@@ -663,48 +669,51 @@ SCServer.prototype._passThroughMiddleware = function (options, cb) {
663
669
self . emit ( 'warning' , err ) ;
664
670
}
665
671
}
666
- cb ( err ) ;
672
+ cb ( err , request . data ) ;
667
673
}
668
674
}
669
675
) ;
670
676
}
671
677
} ;
672
678
673
- SCServer . prototype . verifyOutboundEvent = function ( socket , event , data , options , cb ) {
679
+ SCServer . prototype . verifyOutboundEvent = function ( socket , eventName , eventData , options , cb ) {
674
680
var self = this ;
675
681
676
682
var callbackInvoked = false ;
677
683
678
- if ( event == this . _publishEvent ) {
684
+ if ( eventName == this . _publishEvent ) {
679
685
var request = {
680
686
socket : socket ,
681
- channel : data . channel ,
682
- data : data . data
687
+ channel : eventData . channel ,
688
+ data : eventData . data
683
689
} ;
684
690
async . applyEachSeries ( this . _middleware [ this . MIDDLEWARE_PUBLISH_OUT ] , request ,
685
691
function ( err ) {
686
692
if ( callbackInvoked ) {
687
693
self . emit ( 'warning' , new InvalidActionError ( 'Callback for ' + self . MIDDLEWARE_PUBLISH_OUT + ' middleware was already invoked' ) ) ;
688
694
} else {
689
695
callbackInvoked = true ;
696
+ if ( request . data !== undefined ) {
697
+ eventData . data = request . data ;
698
+ }
690
699
if ( err ) {
691
700
if ( err === true ) {
692
701
err = new SilentMiddlewareBlockedError ( 'Action was silently blocked by ' + self . MIDDLEWARE_PUBLISH_OUT + ' middleware' , self . MIDDLEWARE_PUBLISH_OUT ) ;
693
702
} else if ( self . middlewareEmitWarnings ) {
694
703
self . emit ( 'warning' , err ) ;
695
704
}
696
- cb ( err ) ;
705
+ cb ( err , eventData ) ;
697
706
} else {
698
707
if ( options && request . useCache ) {
699
708
options . useCache = true ;
700
709
}
701
- cb ( ) ;
710
+ cb ( null , eventData ) ;
702
711
}
703
712
}
704
713
}
705
714
) ;
706
715
} else {
707
- cb ( ) ;
716
+ cb ( null , eventData ) ;
708
717
}
709
718
} ;
710
719
0 commit comments