Сокет.ввод-вывод — симметричная или асимметричная передача

#websocket #socket.io #communication #duplex #bidirectional

#websocket #socket.io #Информационные материалы #двусторонняя #двунаправленный

Вопрос:

Я пишу отчет о техническом проекте, в котором используется сокет.Ввод-вывод (который использует WebSockets) для дуплексной связи на основе архитектуры, управляемой событиями (EDA). Я знаю, что полный дуплекс означает, что данные передаются в обе стороны. Это полезно в ситуациях, когда обе стороны хотят начать обмен данными; или сервер хочет быстро ответить.

Но я не знаю, поддерживает ли оба направления одинаковую скорость передачи данных или нет.

Симметричная полоса пропускания соответствует ситуации, когда максимальная скорость передачи одинакова в обоих направлениях. Принимая во внимание, что асимметричная полоса пропускания соответствует ситуации, когда максимальная скорость передачи отличается в каждом направлении. Типичным случаем может быть линия DSL с загрузкой 768 Кбит / с и загрузкой 1,5 Мбит / с.

Пожалуйста, разработайте концепцию симметричной / асимметричной передачи в контексте сокета.Платформа ввода-вывода.

Ответ №1:

Нет никакой принципиальной разницы в транспортировке от клиента к серверу или от сервера к клиенту с socket.io . Итак, ответ на ваш вопрос действительно не имеет ничего общего с socket.ввод-вывод вообще. сокет.io не имеет значения, какой конец является клиентом, а какой — сервером. Это просто TCP-соединение, которое может одинаково хорошо отправлять данные любым способом.

Фактическая пропускная способность, на которую способно соединение, полностью зависит от физического сетевого соединения между клиентом и сервером. Например, если это соединение между домашним компьютером и сервером в Интернете, то путь от сервера к клиенту, скорее всего, будет намного более быстрым, чем наоборот, потому что большинство потребительских интернет-соединений асимметричны (более быстрая загрузка на клиент, чем загрузка на сервер). Но это полностью зависит от интернет-соединения и интернет-провайдера, используемого клиентом и сервером. Это не имеет абсолютно никакого отношения к socket.io .

Комментарии:

1. спасибо за быстрый ответ, можем ли мы установить ту же концепцию для WebSockets? Но поскольку он основан на WebSockets, которые должны быть симметричными (как я нашел во многих онлайн-ссылках).

2. @BitByte_Bake — Да, сокет. io и WebSockets используют один и тот же транспорт, поэтому разницы нет.

3. просто еще одно уточнение. Я обнаружил, что WebSockets устанавливают симметричное соединение, поэтому проект, который использует сокет. IO действительно поддерживает симметричную связь?

4. @BitByte_Bake — сокет. ввод-вывод является двусторонним. Как только соединение установлено, вы можете свободно отправлять данные любым способом по соединению.