locked
Определение запущено ли приложение у пользователя RRS feed

  • Вопрос

  • Добрый день. Программа-чат. C#, Azure Mobile Service. Сейчас определяю количество онлайн пользователей так: при запуске добавляю в  базу (в Azure) строку. И количество  строк = кол-во онлайн пользователей. При выходе из приложения - удаляю эту строку. Но если пропадет интернет у пользователя и он закроет приложение, то строка не удалится. Да и так походу не всегда удаляется. Приходится иногда вручную очищать таблицу в Azure Mobile Service. Есть ли какая-то библиотека или команда пинг в Azure для этой задачи. Спасибо
    10 июня 2013 г. 15:44

Ответы

  • Делаю так же, но не с Azure, а с MySQL.

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

    Это наиболее оптимальный способ что я нашел, но он то же плохой.

    В итоге я сейчас переделываю приложение на Клиент-Сервер, где сервер будет за всем следить. Для сервера я избрал виртуальную машину на Azure.

    Возможно вам подскажут решение для Azure Mobile Service, но я все же имею 2х летний опыт в этом вопросе и все равно рекомендую вам подумать о переносе приложения на Клиент-Сервер.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Petriaev Viacheslav 10 июня 2013 г. 16:25
    10 июня 2013 г. 15:56

Все ответы

  • Делаю так же, но не с Azure, а с MySQL.

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

    Это наиболее оптимальный способ что я нашел, но он то же плохой.

    В итоге я сейчас переделываю приложение на Клиент-Сервер, где сервер будет за всем следить. Для сервера я избрал виртуальную машину на Azure.

    Возможно вам подскажут решение для Azure Mobile Service, но я все же имею 2х летний опыт в этом вопросе и все равно рекомендую вам подумать о переносе приложения на Клиент-Сервер.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Petriaev Viacheslav 10 июня 2013 г. 16:25
    10 июня 2013 г. 15:56
  • Видимо так. Но попробую ваш вариант реализации. Проверку сделаю в Azure. Просто не силен в настройках виртуальной машины для клиент-сервер. 
    10 июня 2013 г. 16:25
  • Видимо так. Но попробую ваш вариант реализации. Просто не силен в настройках виртуальной машины для клиент-сервер. 
    Да там все интуитивно делается. Я как то ничего не читал по этому поводу, сам до всего додумался. Думаю и вы справитесь. В любом случае запланируйте на будущее переход на Клиент-Сервер.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    10 июня 2013 г. 16:27