Как сделать систему обмена мгновенными сообщениями в текущих настройках интернета?

Сначала я хочу сформулировать свой вопрос: 1, я говорю о компьютерной программе, выполняющей обмен мгновенными сообщениями, а не о мобильном приложении. Программа должна работать в каждом доме или офисе.

2. Прямо сейчас все (или большинство) домашних компьютеров находятся за маршрутизатором, защищенным политикой безопасности интернет-провайдера. Это не так, как 20 лет назад, когда компьютер подключается к адаптеру, он получает универсальный IP-адрес, такой же хороший, как Microsoft.com и whitehouse.gov. 10 лет назад вы могли посоветовать пользователю выполнить переадресацию портов или использовать UPnP для незаметного выполнения задачи переадресации портов. Но теперь во имя безопасности интернет-провайдер снимает переадресацию портов с маршрутизатора, управляемого интернет-провайдером (насколько я знаю, это делает xfinity).

Я знаю, как делать IM в настройках LAN или универсальных настройках IP: вы получаете IP-адрес друга, устанавливаете соединение с помощью TCP или UDP, а затем передаете информацию. Теперь, когда все компьютеры находятся за маршрутизаторами, каков возможный / популярный / правильный способ снова использовать IM? Используете центральный сервер для передачи информации, устанавливая соединения UserA-Server и UserB-Server? Я знаю, что это сработает, но, по моему скромному мнению, не очень "мгновенно".

Пожалуйста, посоветуйте, спасибо.

1 ответ

Решение
  1. Upnp и NAT-PMP все еще могут работать, он будет отображать внешний порт, как punchhole. Проблема в том, что наш внешний IP может быть неуверенным. Итак, если вы хотите отправлять мгновенные сообщения, есть два варианта: DHT или Центральный контроллер.

  2. Я предлагаю вам использовать DHT и центральный сервер с использованием структуры ICE, если DHT может работать, тогда это нормально, или мы можем использовать центральный сервер для обхода UDP/TCP. В некоторых случаях, таких как симметричный NAT, серверу необходимо выполнять ретрансляцию, но в других случаях он просто запускает соединение, и тогда это соединение p2p без сервера.

Другие вопросы по тегам