11var client = require ( 'streaming.io-client' ) ,
22 Registry = require ( './registry' ) ,
33 compress = require ( './compress' ) . compress ,
4- debug = require ( 'debug' ) ( 'streaming.io:server' ) ;
4+ debug = require ( 'debug' ) ( 'streaming.io:server' ) ,
5+ assert = require ( 'assert' ) ,
6+ _ = require ( 'underscore' ) ;
57
68exports = module . exports = Streaming ;
79
@@ -16,6 +18,16 @@ var registry;
1618function setupIo ( io , service ) {
1719 io . on ( 'connection' , function ( socket ) {
1820 socket . on ( 'stream' , function ( message , callback ) {
21+ try {
22+ assert ( _ . isObject ( message ) , "message is not an object" ) ;
23+ assert ( _ . isString ( message . url ) , "url not a string" ) ;
24+ assert ( _ . isFunction ( callback ) , "no callback provided" ) ;
25+ } catch ( e ) {
26+ debug ( "socket(%s) - invalid stream message: %s" , socket . id , e . message ) ;
27+ _ . isFunction ( callback ) && callback ( "Invalid request" ) ;
28+ return ;
29+ }
30+
1931 debug ( "socket(%s) - streaming '%s'" , socket . id , message . url ) ;
2032
2133 var readMessage = {
@@ -38,11 +50,30 @@ function setupIo(io, service) {
3850 } ) ;
3951
4052 socket . on ( 'unstream' , function ( message , callback ) {
53+ try {
54+ assert ( _ . isObject ( message ) , "message is not an object" ) ;
55+ assert ( _ . isString ( message . url ) , "url not a string" ) ;
56+ assert ( _ . isFunction ( callback ) , "no callback provided" ) ;
57+ } catch ( e ) {
58+ debug ( "socket(%s) - invalid unstream message: %s" , socket . id , e . message ) ;
59+ _ . isFunction ( callback ) && callback ( "Invalid request" ) ;
60+ return ;
61+ }
62+
4163 registry . removeSubscription ( socket , message . url ) ;
4264 callback ( null ) ;
4365 } ) ;
4466
4567 socket . on ( 'sync' , function ( message , callback ) {
68+ try {
69+ assert ( _ . isObject ( message ) , "message is not an object" ) ;
70+ assert ( _ . isFunction ( callback ) , "no callback provided" ) ;
71+ } catch ( e ) {
72+ debug ( "socket(%s) - invalid sync message: %s" , socket . id , e . message ) ;
73+ _ . isFunction ( callback ) && callback ( "Invalid request" ) ;
74+ return ;
75+ }
76+
4677 debug ( "socket(%s) - op '%s' : %s" , socket . id , message . method , message . url ) ;
4778 service . sync ( socket , message , function ( err , response ) {
4879 if ( err ) {
0 commit comments