Создание одноранговых соединений с использованием промежуточного сервера
Я хочу соединить двух клиентов (через сокеты TCP / IP). Клиенты могут обнаруживать друг друга, используя промежуточный сервер. Как только клиенты обнаруживают друг друга, не должно быть никакого участия сервера.
Я провел некоторое исследование по этому поводу и нашел много людей, предлагающихJXTA
, Но я бы хотел сам создать протокол с нуля (потому что в будущем мне, возможно, придется реализовать то же самое с помощью WebSockets (когда мой клиент - браузер)). В настоящее время моими клиентами могут быть настольные или мобильные приложения.
Мои вопросы:
How will clients discover each other at the server? If the server sends the global IP address of the clients to each other, will that information be enough to create a peer-to-peer connection? What if the clients are on the same LAN network and the server is on a different WAN?
Client have dynamic IP address. Can their IP change all of a sudden even if it has an active socket?
Is peer-to-peer connection is reliable for transfer of non-continuous data (like in chat application)?
[ПРИМЕЧАНИЕ: под одноранговым соединением я имею в виду установление соединения сокета TCP / IP клиент-сервер (с использованием Java), сделав один из клиентов временным сокет-сервером]
Заранее спасибо.