2010-04-02 1 views
3

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

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

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

В один-на-один голос беседуя:

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

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

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

ответ

0

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

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

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

1

• Был бы лучшим сверстником-сверстником?

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

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

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

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

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