2017-02-16 6 views
0

У меня есть злонамеренная проблема с остановкой соединения в клиенте SignalR.Клиент SignalR HubConnection Stop

Здесь мы идем с моим кодом.

я начинаю связь с простым методом

private void Initialize() 
    { 
     var hermesHubAddress = ConfigurationManager.AppSettings["HermesUrl"]; 
     _hubConnection = new HubConnection(hermesHubAddress) 
     { 
      Credentials = CredentialCache.DefaultCredentials 
     }; 

     _hubProxy = _hubConnection.CreateHubProxy("HermesHub"); 
     _hubProxy.On<Notification>("Notify", Recieve_Message); 
     _hubConnection.Start().Wait(); 
     _hubConnection.Error += HubConnectionOnError; 
     _hubConnection.StateChanged += HubConnectionOnStateChanged; 
    } 

тогда, когда клиент выполняет действие, чтобы закрыть соединение

public void Stop() 
    { 
     _hubConnection.Stop(); 
     _hubConnection.Dispose(); 
    } 

у слушателя событий заметил состояние соединения изменилось и вызывается действие

private void HubConnectionOnStateChanged(StateChange stateChange) 
    { 
     if (stateChange.NewState == ConnectionState.Connected) 
     { 
      if (ConnectionEvent != null) 
       ConnectionEvent.Invoke(true); 
     } 
     else 
     { 

      if (ConnectionEvent != null) 
       ConnectionEvent.Invoke(false); 
     } 
    } 

все работает нормально, а клиент отключен, но когда широковещательный сервер SignalR сообщение asts как-то _hubProxy автоматически соединяется с сервером и получает ответ.

ответ

0

Если отправлено более одного сообщения, SignalR попытается сгруппировать их в одну полезную нагрузку. Вот почему M представляет собой массив (вы можете найти более подробную информацию о протоколе SignalR в my post).

SignalR не может отправлять только одно сообщение за опрос. Опрос может быть очень медленным, так как клиенту необходимо создать новый HTTP-запрос для одного опроса. Если вы получаете сообщения быстрее, чем промежуток между опросами, вы не сможете идти в ногу, если вы отправили только одно сообщение на опрос, и вы начнете пропускать сообщения.

Смежные вопросы