예제 #1
0
 public async Task GetStickyConnectionInfo(Hub hub)
 {
     var serverName      = _serverNameProvider.GetName();
     var clientRequestId = hub.Context.GetHttpContext().Request.Query["asrs_request_id"];
     // Only the first connected client will get the sticky information
     var data = new StickyPayloadData()
     {
         HubName    = "transportHub",
         RequestId  = clientRequestId,
         ServerName = serverName
     };
     await hub.Clients.Client(hub.Context.ConnectionId).SendAsync(ClientSyncConstants.TransportHubInfo, data);
 }
예제 #2
0
 public static Task ProvideTransportHubInfo(HubConnection hubConnection, StickyPayloadData transportHubInfo)
 {
     hubConnection.On <RequestAccessData>(ClientSyncConstants.RequestConnectToTransportHub, async(payload) =>
     {
         // Assume the 1st connection has already obtained hub connection info.
         // merge with the previous 1st connection's info.
         var response = new ResponseToRequestAccessData()
         {
             RequestAccessData = payload,
             StickyPayloadData = transportHubInfo
         };
         await hubConnection.SendAsync(ClientSyncConstants.ResponseAccess, response);
     });
     return(Task.CompletedTask);
 }