Skip to content

Commit

Permalink
Return subscription state immediately
Browse files Browse the repository at this point in the history
  • Loading branch information
Groxan committed Nov 17, 2021
1 parent 0cf84d2 commit cd1e83b
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 10 deletions.
10 changes: 5 additions & 5 deletions Tzkt.Api/Websocket/Hubs/DefaultHub.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,29 +30,29 @@ public class DefaultHub : BaseHub
Accounts = accounts;
}

public Task SubscribeToHead()
public Task<int> SubscribeToHead()
{
return Head.Subscribe(Clients.Caller, Context.ConnectionId);
}

public Task SubscribeToBlocks()
public Task<int> SubscribeToBlocks()
{
return Blocks.Subscribe(Clients.Caller, Context.ConnectionId);
}

public Task SubscribeToOperations(OperationsParameter parameters)
public Task<int> SubscribeToOperations(OperationsParameter parameters)
{
parameters.EnsureValid();
return Operations.Subscribe(Clients.Caller, Context.ConnectionId, parameters);
}

public Task SubscribeToBigMaps(BigMapsParameter parameters)
public Task<int> SubscribeToBigMaps(BigMapsParameter parameters)
{
parameters.EnsureValid();
return BigMaps.Subscribe(Clients.Caller, Context.ConnectionId, parameters);
}

public Task SubscribeToAccounts(AccountsParameter parameters)
public Task<int> SubscribeToAccounts(AccountsParameter parameters)
{
parameters.EnsureValid();
return Accounts.Subscribe(Clients.Caller, Context.ConnectionId, parameters);
Expand Down
4 changes: 3 additions & 1 deletion Tzkt.Api/Websocket/Processors/AccountsProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public async Task OnStateChanged()
}
}

public async Task Subscribe(IClientProxy client, string connectionId, AccountsParameter parameter)
public async Task<int> Subscribe(IClientProxy client, string connectionId, AccountsParameter parameter)
{
Task sending = Task.CompletedTask;
try
Expand Down Expand Up @@ -173,6 +173,7 @@ public async Task Subscribe(IClientProxy client, string connectionId, AccountsPa
sending = client.SendState(AccountsChannel, State.Current.Level);

Logger.LogDebug("Client {0} subscribed with state {1}", connectionId, State.Current.Level);
return State.Current.Level;
}
catch (HubException)
{
Expand All @@ -181,6 +182,7 @@ public async Task Subscribe(IClientProxy client, string connectionId, AccountsPa
catch (Exception ex)
{
Logger.LogError("Failed to add subscription: {0}", ex.Message);
return 0;
}
finally
{
Expand Down
4 changes: 3 additions & 1 deletion Tzkt.Api/Websocket/Processors/BigMapsProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ void Add(HashSet<string> subs, Models.BigMapUpdate update)
}
}

public async Task Subscribe(IClientProxy client, string connectionId, BigMapsParameter parameter)
public async Task<int> Subscribe(IClientProxy client, string connectionId, BigMapsParameter parameter)
{
Task sending = Task.CompletedTask;
try
Expand Down Expand Up @@ -253,6 +253,7 @@ public async Task Subscribe(IClientProxy client, string connectionId, BigMapsPar
sending = client.SendState(BigMapsChannel, State.Current.Level);

Logger.LogDebug("Client {0} subscribed with state {1}", connectionId, State.Current.Level);
return State.Current.Level;
}
catch (HubException)
{
Expand All @@ -261,6 +262,7 @@ public async Task Subscribe(IClientProxy client, string connectionId, BigMapsPar
catch (Exception ex)
{
Logger.LogError("Failed to add subscription: {0}", ex.Message);
return 0;
}
finally
{
Expand Down
4 changes: 3 additions & 1 deletion Tzkt.Api/Websocket/Processors/BlocksProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public async Task OnStateChanged()
}
}

public async Task Subscribe(IClientProxy client, string connectionId)
public async Task<int> Subscribe(IClientProxy client, string connectionId)
{
Task sending = Task.CompletedTask;
try
Expand All @@ -114,10 +114,12 @@ public async Task Subscribe(IClientProxy client, string connectionId)
sending = client.SendState(BlocksChannel, State.Current.Level);

Logger.LogDebug("Client {0} subscribed with state {1}", connectionId, State.Current.Level);
return State.Current.Level;
}
catch (Exception ex)
{
Logger.LogError("Failed to add subscription: {0}", ex.Message);
return 0;
}
finally
{
Expand Down
4 changes: 3 additions & 1 deletion Tzkt.Api/Websocket/Processors/HeadProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public async Task OnStateChanged()
}
}

public async Task Subscribe(IClientProxy client, string connectionId)
public async Task<int> Subscribe(IClientProxy client, string connectionId)
{
Task sending = Task.CompletedTask;
try
Expand All @@ -87,10 +87,12 @@ public async Task Subscribe(IClientProxy client, string connectionId)
sending = client.SendState(HeadChannel, StateCache.Current.Level);

Logger.LogDebug("Client {0} subscribed with state {1}", connectionId, StateCache.Current.Level);
return StateCache.Current.Level;
}
catch (Exception ex)
{
Logger.LogError("Failed to add subscription: {0}", ex.Message);
return 0;
}
finally
{
Expand Down
4 changes: 3 additions & 1 deletion Tzkt.Api/Websocket/Processors/OperationsProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ void AddRange(HashSet<string> subs, IEnumerable<Operation> operations)
}
}

public async Task Subscribe(IClientProxy client, string connectionId, OperationsParameter parameter)
public async Task<int> Subscribe(IClientProxy client, string connectionId, OperationsParameter parameter)
{
Task sending = Task.CompletedTask;
try
Expand Down Expand Up @@ -472,6 +472,7 @@ public async Task Subscribe(IClientProxy client, string connectionId, Operations
sending = client.SendState(OperationsChannel, State.Current.Level);

Logger.LogDebug("Client {0} subscribed with state {1}", connectionId, State.Current.Level);
return State.Current.Level;
}
catch (HubException)
{
Expand All @@ -480,6 +481,7 @@ public async Task Subscribe(IClientProxy client, string connectionId, Operations
catch (Exception ex)
{
Logger.LogError("Failed to add subscription: {0}", ex.Message);
return 0;
}
finally
{
Expand Down

0 comments on commit cd1e83b

Please sign in to comment.