@@ -330,7 +330,7 @@ public void Dispose()
330
330
/// <param name="message">Message to send</param>
331
331
/// <param name="groupId">Group id, ignored for now</param>
332
332
/// <returns>True if success, false if error</returns>
333
- public bool QueueMessage ( object message , int groupId = IPBanProBaseAPI . WebSocketGroupIdNone )
333
+ public async Task < bool > QueueMessage ( object message , int groupId = IPBanProBaseAPI . WebSocketGroupIdNone )
334
334
{
335
335
if ( webSocket is null ||
336
336
message is null ||
@@ -413,7 +413,7 @@ async Task enqueueCallback(IQueueMessage socket)
413
413
}
414
414
}
415
415
416
- QueueActions ( enqueueCallback ) ;
416
+ await QueueActions ( enqueueCallback ) ;
417
417
return true ;
418
418
}
419
419
@@ -444,7 +444,7 @@ public void WaitForAck(string id, int timeoutMilliseconds = 60000)
444
444
}
445
445
}
446
446
447
- private void QueueActions ( params Func < IQueueMessage , Task > [ ] actions )
447
+ private async Task QueueActions ( params Func < IQueueMessage , Task > [ ] actions )
448
448
{
449
449
if ( actions != null && actions . Length != 0 )
450
450
{
@@ -467,16 +467,16 @@ private void QueueActions(params Func<IQueueMessage, Task>[] actions)
467
467
}
468
468
} ;
469
469
470
- messageQueue . Enqueue ( enqueueActionsFunc ) ;
470
+ await messageQueue . EnqueueAsync ( enqueueActionsFunc ) ;
471
471
}
472
472
}
473
473
474
- private void QueueActionsWithNoExceptions ( params Func < IQueueMessage , Task > [ ] actions )
474
+ private async Task QueueActionsWithNoExceptions ( params Func < IQueueMessage , Task > [ ] actions )
475
475
{
476
476
if ( actions != null && actions . Length != 0 )
477
477
{
478
478
Func < IQueueMessage , Task > [ ] actionsCopy = actions ;
479
- messageQueue . Enqueue ( ( Func < Task > ) ( async ( ) =>
479
+ await messageQueue . EnqueueAsync ( ( Func < Task > ) ( async ( ) =>
480
480
{
481
481
foreach ( var action in actionsCopy . Where ( a => a != null ) )
482
482
{
@@ -554,7 +554,7 @@ private async Task ReadTask()
554
554
555
555
// on connect may make additional calls that must succeed, such as rest calls
556
556
// for lists, etc.
557
- QueueActionsWithNoExceptions ( InvokeConnected ) ;
557
+ await QueueActionsWithNoExceptions ( InvokeConnected ) ;
558
558
559
559
while ( webSocket . State == WebSocketState . Open )
560
560
{
@@ -566,7 +566,7 @@ private async Task ReadTask()
566
566
if ( result . MessageType == WebSocketMessageType . Close )
567
567
{
568
568
await webSocket . CloseAsync ( WebSocketCloseStatus . NormalClosure , string . Empty , cancellationTokenSource . Token ) ;
569
- QueueActions ( InvokeDisconnected ) ;
569
+ await QueueActions ( InvokeDisconnected ) ;
570
570
}
571
571
else
572
572
{
@@ -586,7 +586,7 @@ private async Task ReadTask()
586
586
if ( result . MessageType == WebSocketMessageType . Text )
587
587
{
588
588
string text = Encoding . UTF8 . GetString ( stream . GetBuffer ( ) , 0 , ( int ) stream . Length ) ;
589
- messageQueue . Enqueue ( text ) ;
589
+ await messageQueue . EnqueueAsync ( text ) ;
590
590
}
591
591
// otherwise treat message as binary
592
592
else
@@ -618,12 +618,12 @@ private async Task ReadTask()
618
618
}
619
619
else
620
620
{
621
- messageQueue . Enqueue ( message ) ;
621
+ await messageQueue . EnqueueAsync ( message ) ;
622
622
}
623
623
}
624
624
else
625
625
{
626
- messageQueue . Enqueue ( stream . ToArray ( ) ) ;
626
+ await messageQueue . EnqueueAsync ( stream . ToArray ( ) ) ;
627
627
}
628
628
}
629
629
}
@@ -648,7 +648,7 @@ private async Task ReadTask()
648
648
{
649
649
if ( wasConnected )
650
650
{
651
- QueueActions ( InvokeDisconnected ) ;
651
+ await QueueActions ( InvokeDisconnected ) ;
652
652
}
653
653
654
654
Logger . Info ( "Client web socket was disconnected from {0}, attempting reconnection..." , uri ) ;
@@ -701,7 +701,7 @@ private async Task MessageTask()
701
701
{
702
702
Logger . Debug ( "Sending ping from client web socket connection to {0}" , Uri ) ;
703
703
lastPing = IPBanService . UtcNow ;
704
- QueueMessage ( "ping" ) ;
704
+ await QueueMessage ( "ping" ) ;
705
705
}
706
706
707
707
if ( ( result = await messageQueue . TryDequeueAsync ( messageQueueTimeout , cancellationTokenSource . Token ) ) . Key )
@@ -755,7 +755,7 @@ private async Task MessageTask()
755
755
lastCheck = IPBanService . UtcNow ;
756
756
757
757
// this must succeed, the callback may be requests lists or other resources that must not fail
758
- QueueActionsWithNoExceptions ( InvokeConnected ) ;
758
+ await QueueActionsWithNoExceptions ( InvokeConnected ) ;
759
759
}
760
760
}
761
761
}
0 commit comments