Писане на ваш собствен P2P messenger

messenger

На фона на обсъждането на бъдещето на интернет пратениците и четенето на статията „Защо вашият любим пратеник трябва да умре“, реших да споделя моя опит от създаването на P2P приложение за комуникация независимо от сървъри на трети страни. По-точно, това е само празно място, което изпраща едно съобщение от клиента към сървъра, по-нататъшното разширяване на функционалността зависи само от вашето въображение.

Ето какво можем да прочетем за STUN сървъра в Wiki:

При решаването на проблема бяха използвани следните модули на Python: socket, twisted, stun, sqlite3, os, sys.

За обмен на данни, както между сървъра и клиента, така и между сървъра, клиента и сървъра за сигнализация, се използва UDP протоколът.

Най-общо функциониращият механизъм изглежда така:

Сървър STUN сървър
STUN сървър клиент

Сървър за сигнални сървъри
Клиент на сървър за сигнали

1. Клиентът, който е зад NAT с тип Full Cone NAT връзка, изпраща съобщение до STUN сървъра, получава отговор под формата на външния си IP и отваря PORT;