Длинный опрос Windows Phone, 60 секунд TimeOut - PullRequest
4 голосов
/ 27 марта 2012

ПриветПриложение Windows Phone должно подключиться к серверу и получать с него сообщения.Это делается с помощью WCF и длительного опроса на сервере.3 минуты - это время ожидания, определенное на сервере.Звонок с Windows Phone осуществляется с помощью HttpWebRequest.Проблема заключается в том, что устройства Windows Phone имеют тайм-аут 60 секунд для запроса на получение (у эмулятора другое значение, больше 3 минут).В настоящее время я не могу уменьшить время ожидания сервера.Выполнение нового GetRequest через 60 секунд больше не приводит к сообщениям.У кого-нибудь есть идея?Спасибо

1 Ответ

3 голосов
/ 27 марта 2012

Я не думаю, что оставлять соединение открытым - это хорошая идея для мобильных устройств. Я предполагаю, что это то, что вы делаете. В моем приложении я просто опрашивал всякий раз, когда это было необходимо, создавая новый HttpWebRequest Но это имело смысл делать в моем приложении, потому что я буду обновлять статус прибытия поезда каждые 40 секунд.

Если вы пытаетесь получить данные по заданному расписанию, включите таймер и просто вызывайте веб-сервер каждые 3 минуты или в соответствии с требованиями.

Если вы хотите иметь возможность что-то проверять (когда приложение закрыто) или если на сервере редко бывают свежие данные, вам необходимо реализовать механизм Push.

Обновление: Вот хорошая статья о решении проблемы тайм-аута - http://blog.xyzzer.me/2011/03/10/real-time-client-server-communication-on-windows-phone-with-long-polling/

Обновление 2: Что если вы настроите это так, что у вас будут каскадные соединения - я имею в виду, поскольку вы не можете использовать больше 60 секунд для каждого соединения, вы можете написать класс, в котором будет размещаться два соединения, и как только одно из них истекает, скажем, за несколько секунд до этого, вы можете начать открывать другое соединение - вы можете выбрать время, чтобы между ними было не более 5 секунд перекрытия. Таким образом, вы можете иметь всегда открытое соединение.

Также посмотрите, что эти ребята сделали с приложением GChat, их исходный код доступен по этой ссылке . Это может обеспечить более правильный дизайн.

...