@@ -106,7 +106,9 @@ public async Task Open(NHost host)
106106
107107 InitReceiver ( ) ;
108108
109- _isOpening = false ; // allow client send data on OnOpen callback.
109+ _isOpening = false ;
110+
111+ // allow client send data on OnOpen callback.
110112 On . OnOpen ? . Invoke ( null , null ) ;
111113 }
112114 catch ( Exception e )
@@ -164,7 +166,7 @@ public void Data(byte[] data)
164166 {
165167 if ( CanSend == false || data == null || data . Length <= 0 ) return ;
166168
167- // SendDispatch(data);
169+ SendDispatch ( data ) ;
168170 }
169171
170172 public void Encryption ( bool enable )
@@ -188,35 +190,40 @@ public void Data(string data)
188190 {
189191 if ( CanSend == false || string . IsNullOrEmpty ( data ) ) return ;
190192
191- // SendDispatch(data.GetBytes());
193+ SendDispatch ( data . GetBytes ( ) ) ;
192194 }
193195
194196 public void Data ( string data , Encoding encoding )
195197 {
196198 if ( CanSend == false || string . IsNullOrEmpty ( data ) ) return ;
197199
198- // SendDispatch(data.GetBytes(encoding));
200+ SendDispatch ( data . GetBytes ( encoding ) ) ;
199201 }
200202
201203 public void Event ( string name , byte [ ] data )
202204 {
203205 if ( CanSend == false || string . IsNullOrEmpty ( name ) || data == null || data . Length <= 0 ) return ;
204206
205- // SendDispatch(NetlyEnvironment.EventManager.Create(name, data));
207+ var header = NMessage . Create ( name , data . LongLength ) ;
208+ SendDispatch ( header , data ) ;
206209 }
207210
208211 public void Event ( string name , string data )
209212 {
210213 if ( CanSend == false || string . IsNullOrEmpty ( data ) || string . IsNullOrEmpty ( name ) ) return ;
211214
212- //SendDispatch(NetlyEnvironment.EventManager.Create(name, data.GetBytes()));
215+ var bytes = data . GetBytes ( ) ;
216+ var header = NMessage . Create ( name , bytes . LongLength ) ;
217+ SendDispatch ( header , bytes ) ;
213218 }
214219
215220 public void Event ( string name , string data , Encoding encoding )
216221 {
217222 if ( CanSend == false || string . IsNullOrEmpty ( name ) || string . IsNullOrEmpty ( data ) ) return ;
218223
219- //SendDispatch(NetlyEnvironment.EventManager.Create(name, data.GetBytes(encoding)));
224+ var bytes = data . GetBytes ( encoding ) ;
225+ var header = NMessage . Create ( name , bytes . LongLength ) ;
226+ SendDispatch ( header , bytes ) ;
220227 }
221228
222229 /* ---- INTERFACE --- */
@@ -338,32 +345,35 @@ await _sslStream.AuthenticateAsServerAsync
338345
339346 private void PublishData ( Stream stream )
340347 {
341- /*
342- if (Package.ParseMessage(bytes, out var name, out var data))
343- On.OnEvent?.Invoke(null, (name, data));
348+ if ( NMessage . TryParse ( stream , out var name , out var message , NUtils . NewStream ) )
349+ {
350+ message . Position = 0 ;
351+ On . OnEvent ? . Invoke ( null , ( name , message ) ) ;
352+ }
344353 else
345- On.OnData?.Invoke(null, bytes);*/
354+ {
355+ stream . Position = 0 ;
356+ On . OnData ? . Invoke ( null , stream ) ;
357+ }
346358 }
347359
348- private void SendDispatch ( object package )
360+ private void SendDispatch ( params byte [ ] [ ] buffers )
349361 {
350- /*
351362 if ( _socket == null || _netStream == null || ( IsEncrypted && _sslStream == null ) )
352363 {
353- package.Clear();
354364 return ;
355365 }
356366
357367 try
358368 {
359- if (package == null || package.Count <= 0) return;
360369 var stream = IsEncrypted ? ( Stream ) _sslStream : ( Stream ) _netStream ;
361- foreach (var segment in package.Segments) stream.WriteAsync(segment, 0, segment.Length);
370+ foreach ( var bytes in buffers )
371+ stream . WriteAsync ( bytes , 0 , bytes . Length ) ;
362372 }
363373 catch ( Exception e )
364374 {
365- NetlyEnvironment.Logger.Create (e);
366- }*/
375+ NLogger . Singleton . Submit ( e ) ;
376+ }
367377 }
368378
369379 private void InitReceiver ( )
@@ -423,7 +433,7 @@ private void ReceiveHandler(IAsyncResult result)
423433 }
424434 else
425435 {
426- var stream = NUtils . NewStream ( size ) ;
436+ var stream = NUtils . NewStream ( size ) ;
427437 stream . Write ( _buffer , 0 , size ) ;
428438 PublishData ( stream ) ;
429439 }
0 commit comments