Можно ли отправить HttpWebRequest из деактивированного обработчика событий в WP7? - PullRequest
2 голосов
/ 16 августа 2011

В сетевой игре XNA WP7 я хочу уведомить сервер, когда игра деактивируется, например, когда я нажимаю кнопку поиска во время игры.Игра использует HTTP-запросы для работы в сети, и кажется, что HttpWebRequests обрабатываются не сразу, а в какой-то момент основного цикла в потоке пользовательского интерфейса.Другими словами, любой запрос HttpWebRequest, который я создаю из деактивированного обработчика событий непосредственно перед тем, как приложение будет захоронено, никогда не будет обработан.

Есть ли обходной путь для этого без необходимости переписывать весь сетевой код с помощью сокетов, или я просточто-то не так понял?

1 Ответ

2 голосов
/ 17 августа 2011

Деактивированное событие предназначено для хранения состояния приложения, поскольку приложение деактивировано (и, возможно, захоронено).Это событие никогда не предназначалось для использования в веб-запросах.Обратите внимание, что если вы попытаетесь сделать запрос в этом случае, то, что приложение не получит ответ, не означает, что оно не попадет на сервер.

В этом случаеСетевая игра Я предполагаю, что вы должны быть онлайн, чтобы играть.Если это так, что произойдет, если устройство потеряет сетевое соединение?Конечно, вы оказались бы в такой же ситуации, но вы точно не могли бы отправить уведомление на сервер.
Я подозреваю, что вам нужно по-другому относиться к модели вашего приложения.

Если вам действительно нужноонлайн, чтобы играть, если бы у вас не было сервера, просто предположите, что соединение потеряно, если оно не слышит от устройства в течение определенного периода времени

В зависимости от игры, вам также может потребоваться кэширование любой игры.состояние / действия, если соединение прерывается ненадолго.

...