Как работает мессенджер (IM) (прослушивание)?

Моя задача - написать программу Messenger для внутренних и внешних сотрудников, я на самом деле сделал это. Тем не менее, я считаю, что это действительно не очень хороший подход с использованием клиентского программного обеспечения, хранящего "check-mesg" с сервера. Так что я думаю, что я просто имитирую программу IM.

Я хочу, чтобы клиентское приложение стало сервером прослушивания, и чтобы пользователь p2p говорил без "центра сообщений" на главном сервере (если не происходит автономная передача сообщений). Вопрос в том, как сообщить внешнему пользователю (другому клиентскому приложению) мое местоположение, пока я нахожусь за маршрутизатором?

Эти другие IM-программы тоже работают на клиентском компьютере как сервер? и как они проходят?

Заранее спасибо!

1 ответ

Это довольно сложно подключиться к системам за маршрутизатором и не всегда возможно. Хорошо документированный способ сделать это с UDP - это протокол STUN (используемый в основном для VoIP на основе SIP). Если не удается обойтись за маршрутизатором, вы можете использовать только сервер в открытой сети в качестве посредника (некоторые системы P2P также предоставляют одноранговые узлы с хорошим подключением к таким посредникам). SIP использует TURN для использования в качестве протокола-посредника. Протокол SIP для определения правильного решения для клиента - ICE.

Смотрите также прохождение NAT.

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