Задать вопрос
  • Как воспроизводить код при закрытии приложения?

    pickHabr
    @pickHabr
    Костыльных дел мастер
    на клиенте можно отследить только целевое закрытие программы (нажатие соответствующей кнопки), для нецелевого завершения клиентского приложения можно нагородить костыль в виде дополнительной программы демона, который запускается при запуске основной программы, фиксирует PID основного приложения и по кд пингует его, когда PID пропал или присвоился другому отправлять сообщение на сервер, но это костыль и не спасет от ситуации закрытия всех программ через диспетчер задач, и даже если закрытие приложение удалось поймать на клиенте - как отправиь эту инфу на сервер если, допустим, на клиенте уже нет интернета

    на сервер условное сообщение "disconnected"


    просто на сервере отслеживать когда коннект оборвался, это может быть предусмотренное событие разрыва соединения, можно просто пинг (от сервера) понг (от клиента) реализовать, когда пинг не проходит - считаем, что приложение закрыли. тут может быть коллизия с тем, что приложение запущено, но отключился интернет например
    Ответ написан
    2 комментария
  • Как лучше устроить сервер для мессенджера?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучше для чего именно? Для передачи сообщение между сервером и клиентом в вебе уже давно придуманы веб-сокеты, поэтому лучше выбрать ЯП/фреймворк, где реализована адекватная поддержка данного протокола и есть библиотеки. HTTP можно, конечно, использовать - но только с костылями. Вот только, зачем? А если не веб - то можно брать любой бинарный сериализатор и сразу использовать голые сокеты (впрочем и веб-сокеты и вне веб тоже нормальное решение).
    Ответ написан
    2 комментария
  • Как лучше устроить сервер для мессенджера?

    2ord
    @2ord
    Сначала подумай о (сквозном) шифровании. Современные мессенджеры генерируют уникальный ключ для участников чата, если я не ошибаюсь. Почитай о MTProto и других протоколах шифрования.
    Подумай о том то необходимо, чтобы обеспечить безопасную передачу данных и какие другие технологии могут для этого подходить лучше других и отталкивайся от этого и своих возможностей, конечно.
    Ответ написан
    1 комментарий