Как мое настольное приложение может быть уведомлено об изменении состояния на удаленном сервере? - PullRequest
0 голосов
/ 20 октября 2010

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

Как лучше всего уведомить мое настольное приложение, когда сервер одобрит запрос на авторизацию? Авторизация занимает в среднем 20 секунд, минимум 5 секунд и время ожидания 120 секунд.

Я думал о том, чтобы опрашивать сервер когда-либо 3 секунд или около того, но это будет трудно измерить, когда я разверну приложение более широко, и, кажется, неэлегатно.

У меня есть полный контроль над дизайном сервера и клиентского API. Сервер использует web.py в Ubuntu 10.10, Python 2.6.

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Вам нужно сделать что-то асинхронное. Я всегда был большим поклонником twisted , который является основой для создания асинхронных сетей в python. Он поддерживает множество распространенных протоколов и имеет свои собственные возможности. Если Twisted кажется немного излишним, вы можете сравнить другие асинхронные платформы здесь

0 голосов
/ 20 октября 2010

Дистанционный конец блокируется, пока выполняется аутентификация?Если это так, вы можете использовать простой select для блокировки до тех пор, пока он не вернется.

Другой способ, о котором я могу подумать, - это передать URL-адрес обратного вызова серверу аутентификации, попросив его вызвать его, когда это будет сделано, чтобы вашклиентское приложение может продолжаться.Что-то вроде паутины.

...