Каков наилучший способ разработки больших дуплексных служб WCF с помощью приложения Silverlight? - PullRequest
3 голосов
/ 02 августа 2009

В настоящее время я работаю над приложением silverlight, точнее игрой, которая имеет 2 состояния: Лобби и Игра.

Я создал свое сервисное приложение, чтобы отразить эту структуру. Я создал LobbyService для обработки всех операций, связанных с лобби, и GameService для обработки всех реальных игровых операций. Кроме того, у меня есть третий сервис 'GeneralService', который обрабатывает операции, которые совместно используются обоими состояниями (чат, системные сообщения и т. Д.).

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

Итак, мой вопрос: лучше ли иметь всего 1 Службу WCF (.svc) для всего (может быть, просто путем реализации 3 разных контрактов на данные) или лучше оставить текущий дизайн и логически разделить службы на собственный сервис?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Как я знаю, сервисы WCF Polling Duplex имеют некоторые недостатки в производительности ... Может быть, лучше использовать этот проект: http://laharsub.codeplex.com/ для вашего приложения.

0 голосов
/ 02 августа 2009

Если между LobbyService и GameService существуют различия в безопасности / правах, я бы оставил их как две разные службы.

Вы можете разрешить эти службы Inherhit от GeneralService, таким образом, эти функции будут доступны в обеих службах.

Это уменьшает количество дуплексных каналов, открытых для каждого клиента, при сохранении структуры или ваших услуг.

...