Разница есть. HTML и CSS должны отвечать за отображение, JS - за логику страницы. Поэтому, когда используют js для отображения того, что может быть реализовано на CSS, называют костылем.
Пункты 3 и 4 крайне тяжело понять. И где остальные пункты, где происходит подключение клиентов между собой?
Попробуйте с google translate и нормально опишите алгоритм, с тремя сторонами, кто и что куда посылает.
Также проверьте, возможно ли на вашем оборудовании сделать Hole Punching, это не всегда возможно.
@Droll80 Определение состояния комьютера настолько подробно, с моей точки зрения, будет дорогим удовольствием. Зачем вам это? Может действительно легче сбегать?
Изаинтие конечно, но Вам @trytrytry пока-что противопоказан такой ресурс, как toster, а точнее задавать на нем такие вопросы. Вам пока необходимо решать свои проблемы исключительно документацией, наблюдательностью, и использованием гугла и в первую очередь - туториалы.