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