Онлайн голосовой чат: почему модель клиент-сервер, а не одноранговая модель? - PullRequest
3 голосов
/ 03 апреля 2010

Я добавляю онлайн-голосовой чат в приложение Silverlight. Я просматривал текущие приложения, сервисы и SDK, найденные с помощью онлайн-поиска и форумов. Я обнаружил, что большинство из них реализуют модель клиент-сервер (C / S), и я пытаюсь понять, почему эта модель отличается от одноранговой (PTP) модели. Для меня PTP был бы предпочтительнее, потому что прямой переход между узлами был бы более эффективным (меньше переходов по IP и не обрабатывалось бы в процессе работы серверным компьютером) и не требовался сервер, его затраты и зависимости. Я обнаружил, что некоторые продукты предлагают возможность переключения с PTP на C / S, если PTP окажется недостаточным.

Поскольку я больше думал об этом, я мог видеть, что C / S может быть лучше, если в диалоге участвуют более двух пиров, тогда сервер (предположительно с большей пропускной способностью) мог бы лучше выполнять ретрансляцию каждого пира исходящий трафик на несколько других пиров. В C / S голосовой чат «многие ко многим», широкополосный восходящий канал каждого партнера (что является узким местом, по сути, является узким местом) должен был бы переносить каждый элемент голосового трафика только один раз, тогда сервер будет использовать свою превосходящую пропускную способность для передачи сообщения на несколько других пиров.

Но в ситуации голосового чата один на один кажется, что PTP был бы лучшим. Сервер не уменьшит требования к пропускной способности каждого из двух узлов, а только добавит ненужные издержки, зависимость и стоимость.

В голосовой чат один на один :

  • Я что-то ошибаюсь?
  • Будет ли одноранговым лучше?
  • Будет ли сервер предоставлять что-то ценное, что не может быть предоставлено только клиентом Программа
  • Есть что-нибудь еще, что я должен принимать во внимание?

И, наконец, можете ли вы порекомендовать какие-либо продукты для голосового чата Silverlight PTP или C / S?

Заранее спасибо за любую информацию.

Ответы [ 2 ]

1 голос
/ 05 апреля 2010

• Будет ли одноранговым лучше?

Нет, это просто хорошо, если вы работаете в среде локальной сети, но в Интернете вам нужна модель C / S для обработки клиентских запросов (клиент будет находиться за NAT) (сервер будет иметь публичный IP-адрес) .

• Может ли сервер предоставить что-то ценное, что не может быть предоставлено только клиентской программой?

Да, вы не можете общаться с клиентом, который существует за NAT, и если его IP не является статическим или неизвестным, по этой причине лучшим решением является модель C / S

Вы можете порекомендовать любые продукты для голосового чата Silverlight PTP или C / S?

Да Проверьте этот проект: http://www.socketcoder.com/ArticleFile.aspx?index=2&ArticleID=70 как модель C / S

0 голосов
/ 03 апреля 2010

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

Однако PTP потребует, чтобы один или оба узла открыли порт для прослушивания, чтобы другой узел мог подключиться. Насколько я вижу, Silverlight не поддерживает возможность прослушивания входящего запроса на соединение.

Следовательно, Silverlight CS является единственным доступным решением.

...