• Веб-сервер на Node.js. Как организовать и контролировать сервис для прослушивания вебсокета для каждого активного пользователя?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Если вас волнует статическая типизация, то вам следует обратить внимание на Typescript и ts-node.

    По факту все делается достаточно просто при использовании JWT. Вот вам пример https://github.com/auth0-community/auth0-socketio-jwt

    Это поможет въехать в тему https://learn.javascript.ru/screencast/nodejs#node...
    Ответ написан
    Комментировать
  • Сделать запуск другого android приложения?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Отправить intent.
    Ответ написан
    8 комментариев
  • Быть узкоспециализированным или разносторонним? Что лучше?

    Adamos
    @Adamos
    "Не могу определиться, в каком спорте стать чемпионом - или сразу замахиваться на триатлон. Так напряженно об этом думаю, что даже зарядку сделать некогда!"
    Ответ написан
    Комментировать
  • Могу ли я отказаться от проекта?

    NightmareZz
    @NightmareZz
    Нищий разработчик из Симферополя
    Ты - раб на галере. Тебе дали другое весло, но ты не хочешь им грести, аргументируя тем, что оно тебе незнакомо. Как думаешь, кто отправится кормить рыб?
    Ответ написан
    Комментировать
  • Способы реализации p2p обмена сообщениями. Каким образом blockchain может быть использован в создании мессенджера?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Совсем отказаться от серверов или чего то что будет говорить где какой клиент крайне сложно. Мы живем в мире где куча НАТов и серых ip адресов с динамикой.
    По факту Вам надо решить следующие проблемы:
    1) Реализовать "пробивалку" NATов. Способов много и нужно учитывать максимальное их количество. Это и UPnP, и возможность пробития порта через соседа который это может сделать и соединение с другим клиентом и уже через него выходить в общую сеть обмена.
    2) Нужен некий механизм доверия между клиентами т.к. никакого центрального сервера авторизации не будет. Тут способов тоже много и чаще всего применяется шифрование по некоторому ключу который генерируется у каждого клиента к каждому клиенту, после чего хранится локально. Даже если некий клиент прикинется другим клиентом с его ключем то ничего не выйдет. Сообщения дойдут но прочитать их он уже не сможет без индивидуальных ключей к каждому клиенту которые злоумышленник узнать уже не сможет никак.
    3) Понадобится некая реализация системы для сообщения IP адреса и порта клиентов друг другу. Тут уже варианты абсолютно разные со своими плюсами и минусами. Самый простой это некоторый сервер который только знает ip:port:идентификатор_клиента, с ним все и работают(естественно ничего более этот сервер не делает и сообщения и данные ходят между клиентами напрямую).
    Другой вариант это все тот же сервер который дает и знает ip:port:идентификатор_клиента но отличительно то что он динамический и создается у лучшего клиента(лучший выбирается по неким критериям типа хороший инет, выделенный ip, отсутсвие ната и т.д.). Т.е. сервер все также остался но переехал к самим клиентам и мало того их стало много. Этот способ и есть DHT и из него вырастает следующая проблема.
    4) Т.к. теперь у тебя полностью децентрализованная сеть на основе DHT или своего велосипеда который тоже повторяет DHT выросла проблема в том что клиенты могут оказаться в разных сетях с этими DHT и вообще не знать друг о друге. Тут понадобится реализация некоего механизма что бы DHT сервера искали и знали друг о друге. Как это будет реализованно тоже огромный геморойный вопрос, можно сделать еще один слой в виде DHT над DHT, можно сделать некоторые центральные сервера, можно пойти путем жесткого бродкаста между DHT узлами и т.д.

    Полноценно настоящая децентрализованная сеть возможно только в мире где у каждой железки в сети свой уникальный статичный IP и полностью отсутсвуют фаирволы а сама сеть построена без шлюзов и без деления на подсети. Но как понятно такого никогда не было и не будет но возможно внутри маленькой локальной сети.
    Чуть не забыл, такой p2p чат уже существует в виде Tox. Отдельно существуют подобные чаты в виде плагинов в битторрент клиенте Vuze-.
    Ответ написан
    3 комментария