r v a r n e t = r e q u i r e ( ' n e t ' ) v a r D o c = r e q u i r e ( ' c r d t ' ) . D o c v a r A = n e w D o c ( ) n e t . c r e a t e S e r v e r ( f u n c t i o n ( s t r e a m ) { s t r e a m . p i p e ( A . c r e a t e S t r e a m ( ) ) . p i p e ( s t r e a m ) } ) / / c l i e n t v a r n e t = r e q u i r e ( ' n e t ' ) v a r D o c = r e q u i r e ( ' c r d t ' ) . D o c v a r A = n e w D o c ( ) v a r s t r e a m ( s t r e a m = n e t . c o n n e c t ( ) ) . p i p e ( A . c r e a t e S t r e a m ( ) ) . p i p e ( s t r e a m )
r v a r b o a r d = n e w c r d t . D o c ( ) / / s h o e i s a s t r e a m s w r a p p e r a r o u n d s o c k j s ( w e b s o c k e t s ) s h o e ( f u n c t i o n ( s o c k ) { v a r m x ; s o c k . p i p e ( m x = n e w M u x D e m u x ( f u n c t i o n ( s ) { s . p i p e ( b o a r d . c r e a t e S t r e a m ( ) ) . p i p e ( s ) } ) ) . p i p e ( s o c k ) } ) . i n s t a l l ( s e r v e r . l i s t e n ( 3 0 0 0 ) , ' / s h o e ' ) / / c l i e n t v a r b o a r d = n e w c r d t . D o c ( ) v a r s t r e a m = s h o e ( ' / s h o e ' ) v a r m x = M u x D e m u x ( ) s t r e a m . p i p e ( m x ) . p i p e ( s t r e a m ) v a r d s = b o a r d . c r e a t e S t r e a m ( ) d s . p i p e ( m x . c r e a t e S t r e a m ( { t y p e : ' b o a r d ' } ) ) . p i p e ( d s )