Создание и поддержка подключения SignalR в фоновой задаче WinRT

В настоящее время у меня есть приложение Windows Phone, которое подключается к службе SignalR для получения данных уведомлений. Служба отправляет данные на телефон, которые приложение принимает, обрабатывает и т. д., и все работает, как и ожидалось.

Однако я хотел бы, чтобы приложение продолжало получать данные уведомления, когда приложение приостановлено и больше не находится на переднем плане, и отображало данные уведомления в виде всплывающего сообщения. Из того, что я вижу, инфраструктура фоновых задач не предлагает возможности сделать это. У меня есть доступ к событию «Приостановка и возобновление» (используя Prism), поэтому здесь я могу зарегистрировать/отменить регистрацию своей фоновой задачи.

Что касается триггера, то единственным, который близок к релевантности, является TimeTrigger, но он имеет время обновления только 15 минут, поэтому, предполагая, что я воссоздаю соединение в фоновой задаче, я бы в конечном итоге открыл, а затем мгновенно закрыл триггер. подключение каждые 15 минут, что я не хочу делать.

У меня может быть «бесконечное ожидание», которое просто зависает до истечения времени ожидания, но это не похоже на правильный путь (и использование ресурсов было бы ужасным).

Есть ли способ обойти это, чтобы достичь того, что я хочу сделать?


person lookitskris    schedule 10.11.2014    source источник


Ответы (1)


Нет, приложения для Windows Phone не могут держать канал открытым таким образом. Если целью являются только всплывающие уведомления, вы можете выполнить вычисления на сервере и отправить всплывающее уведомление.

Приложения Магазина Windows могут делать это с помощью ControlChannelTrigger. class, но не поддерживается в Windows Phone.

person Rob Caplan - MSFT    schedule 10.11.2014