2017-02-09 11 views
0

Задача отменена при ожидании групп .Add (groupId, Context.ConnectionId); все еще существует с WebSockets на Win8. Как увеличить время сигнала signalr, если этот запрос занимает более 30 секунд.Задача отменена при ожидании групп .Add (groupId, Context.ConnectionId);

Задача была canceled.mscorlibStackTrace: --- на System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача Task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Целевая задача)

Пожалуйста, помогите меня.

+1

Вы не увеличиваете этот тайм-аут. Я бы поискал причину, почему у вас этот таймаут. – Tester

ответ

0

Возможно, вы не должны увеличивать время ожидания. Посмотрите на это question, так как это объясняет поведение, которое вы можете наблюдать. Соответствующие действия состоят в том, чтобы проверить указанную проблему на стороне клиента и обработать ее соответствующим образом, не увеличивая время ожидания.

Но, как вы это просили, вот как вы можете это сделать. Добавьте это в класс запуска.

// Make long polling connections wait a maximum of 110 seconds for a 
// response. When that time expires, trigger a timeout command and 
// make the client reconnect. 
GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(110); 

// Wait a maximum of 30 seconds after a transport connection is lost 
// before raising the Disconnected event to terminate the SignalR connection. 
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(30); 

// For transports other than long polling, send a keepalive packet every 
// 10 seconds. 
// This value must be no more than 1/3 of the DisconnectTimeout value. 
GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(10); 

Необходимо увеличить DisconnectTimeout. И есть небольшая вещь, о которой нужно помнить: важен параметр настройки KeepAlive и DisconnectTimeout. Если вы установили DisconnectTimeout после того, как вы установили KeepAlive, он переопределит значение KeepAlive.

+0

В моем случае у меня есть только один хаб, где я сделал рукопожатие и сделал групповой вызов. Есть ли способ, когда SR предоставляет нам список подключенных клиентов на стороне сервера, где я могу отслеживать состояние клиента. Как я узнал после R & D, мы должны создать собственный список, который повторно обновляется при подключенных и отключенных событиях SR. Все еще имеют такую ​​же проблему, как избавиться от this.please помогите мне. –

+0

Нет, нет способа получить список подключенных пользователей - это правда. Вам необходимо переопределить методы OnConnected и OnDisconnected концентратора и самостоятельно создать список подключенных пользователей. – cassandrad

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

  • Нет связанных вопросов^_^