@@ -104,7 +104,7 @@ public override Emitter Emit(string eventString, params object[] args)
104104 return this ;
105105 }
106106
107- var _args = new List < object > { eventString } ;
107+ var _args = new List < object > { eventString } ;
108108 _args . AddRange ( args ) ;
109109
110110 var jsonArgs = Parser . Packet . Args2JArray ( _args ) ;
@@ -138,40 +138,60 @@ public Emitter Emit(string eventString, IAck ack, params object[] args)
138138 {
139139 var log = LogManager . GetLogger ( Global . CallerName ( ) ) ;
140140
141- var _args = new List < object > { eventString } ;
142- if ( args != null )
141+ if ( Events . Contains ( eventString ) )
143142 {
144- _args . AddRange ( args ) ;
143+ base . Emit ( eventString , args ) ;
144+ return this ;
145145 }
146146
147- var jarray = new JArray ( _args ) ;
148- var packet = new Packet ( Parser . Parser . EVENT , jarray ) ;
147+ var _args = new List < object > { eventString } ;
148+ _args . AddRange ( args ) ;
149+
150+ var jsonArgs = Parser . Packet . Args2JArray ( _args ) ;
151+
152+ var parserType = HasBinaryData . HasBinary ( jsonArgs ) ? Parser . Parser . BINARY_EVENT : Parser . Parser . EVENT ;
153+ var packet = new Packet ( parserType , jsonArgs ) ;
149154
150155 log . Info ( string . Format ( "emitting packet with ack id {0}" , Ids ) ) ;
151156 Acks = Acks . Add ( Ids , ack ) ;
152157 packet . Id = Ids ++ ;
153158
154- Packet ( packet ) ;
159+ if ( Connected )
160+ {
161+ Packet ( packet ) ;
162+ }
163+ else
164+ {
165+ SendBuffer = SendBuffer . Enqueue ( packet ) ;
166+ }
155167 return this ;
156168 }
157169
158170 public Emitter Emit ( string eventString , Action ack , params object [ ] args )
159171 {
160172 return Emit ( eventString , new AckImpl ( ack ) , args ) ;
161173 }
174+
162175 public Emitter Emit ( string eventString , Action < object > ack , params object [ ] args )
163176 {
164177 return Emit ( eventString , new AckImpl ( ack ) , args ) ;
165178 }
179+
166180 public Emitter Emit ( string eventString , Action < object , object > ack , params object [ ] args )
167181 {
168182 return Emit ( eventString , new AckImpl ( ack ) , args ) ;
169183 }
184+
170185 public Emitter Emit ( string eventString , Action < object , object , object > ack , params object [ ] args )
171186 {
172187 return Emit ( eventString , new AckImpl ( ack ) , args ) ;
173188 }
174189
190+ public Emitter Emit ( string eventString , Action < object , object , object , object > ack , params object [ ] args )
191+ {
192+ return Emit ( eventString , new AckImpl ( ack ) , args ) ;
193+ }
194+
175195 public void Packet ( Packet packet )
176196 {
177197 packet . Nsp = Nsp ;
0 commit comments