Чат ASP.NET с WCF

Я надеюсь реализовывать интерфейс чат-комнаты для страницы ASP.NET. Я нахожусь в процессе изучения WCF, и кажется, что это подходит для приложения чата. Прежде чем я также приму участие в WCF, я хочу быть уверенным, что это - правильный выбор сделать для разработки приложения чата в ASP.NET. Кто-либо может обеспечить какую-либо обратную связь?

Я нашел несколько примеров приложений, которые, прежде всего, используют Silverlight с WCF для приложений чата. Есть ли какие-либо ограничения, если я выбираю not to use Silverlight?

Кроме того, любые альтернативы WCF, что я имел бы полный контроль, будут очень полезны. Я знаю, что могу использовать опрос Ajax, обратная связь на способствует/ставит в невыгодное положение, все ценятся.Спасибо.

5
задан Sean 12 December 2009 в 23:54
поделиться

5 ответов

Вы можете использовать либо Native ASP.Net подход, либо Silverlight подход для разработки красивого чат-приложения.

Единственная проблема заключается в том, как ваше приложение реагирует на конечного пользователя. Здесь отзывчивый означает, как система позволяет пользователю чувствовать присутствие других пользователей и опыт чата в реальном времени. Это исправляется иногда как в реальном времени . (Как gmail и facebook веб-чат позволяет пользователю видеть присутствие пользователя, говоря "пользователь печатает или простаивает").

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

Чтобы добиться этого, вы должны реализовать дуплексное взаимодействие между браузером и сервером. Тогда сервер будет уведомлять клиента, если есть ответ от другого пользователя или его присутствия.

В ASP.Net способом:

  • Это полностью контролируется следующим образом AJAX.
  • Нужно смоделировать дуплексную связь с помощью AJAX. По умолчанию HTTP не поддерживает дуплексную связь. Его шлюз. Он отвечает только на запрос клиента. Он не может напрямую вызывать метод клиента .
  • Существуют существующие методы для достижения этого. Один из подходов называется COMET или ReverseAJAX.
  • Его ничто иное, как долгоживущий AJAX вызывает, и будет отвечать клиенту, если на стороне сервера происходит ожидаемое событие, в противном случае он остается спокойным. Эта статья в Википедии Comet (программирование) объясняет больше о подходе.

In SilverLight way:

  • Silverlight дает гораздо лучший пользовательский опыт по сравнению с обычными HTML-страницами.
  • Используя SL, вы можете использовать Дуплексные службы WCF для реализации техники server push. В соответствии с MSDN, в нем говорится

Дуплексный контракт на предоставление услуг - это сообщение. модель обмена, при которой и то, и другое конечные точки могут отправлять сообщения другое независимо. Дуплексный сервис, поэтому может отправлять сообщения обратно клиентская конечная точка, предоставляющая event-like behavior

Надеюсь, это поможет

.
7
ответ дан 14 December 2019 в 04:39
поделиться

Silverlight - естественный выбор для приложения чата WCF, поскольку вы можете создать более богатый пользовательский интерфейс и, что наиболее важно, напрямую взаимодействовать со службами WCF. Если вы выберете Ajax, тогда все клиентское программирование должно выполняться на Javascript. Вы можете создать службу WCF с поддержкой Ajax , но на самом деле вам нужно общаться с ней через прокси. Это похоже на службу, подобную JSON Rest, и не предлагает весь потенциал технологии WCF (например, объединение обратных вызовов).

Альтернативой WCF является реализация простых служб HTTP (например, с использованием ASP.NET MVC) и подключитесь к ним с помощью библиотеки javascript, например jQuery. Конечно, опрос необходим, но это то, что делает большинство веб-сайтов в подобных случаях. Преимущество решения в том, что оно кроссплатформенное,

0
ответ дан 14 December 2019 в 04:39
поделиться

Я не знаю о Silverlight, но для обычного AJAX я обнаружил, что справляться с вещами самостоятельно с помощью контроллера ASP.NET MVC намного проще.

0
ответ дан 14 December 2019 в 04:39
поделиться

Просмотрите ссылку ниже - это должна быть хорошая статья для начала создания приложения для чата. с использованием WCF и WPF. Очень просто и легко изучить базовые вещи.

http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx

Вы можете найти Прикрепленное демонстрационное приложение вместе с исходным кодом в статье выше.

] Изменить:

Для чат-приложения TCP Binding является лучшим вариантом, чем HTTP Binding.

пожалуйста, обратитесь к этому -> http://www.codeproject.com/KB/WCF/HttpBinding.aspx

0
ответ дан 14 December 2019 в 04:39
поделиться

Silverlight Client:

Silverlight имеет ряд преимуществ, включая гибкость пользовательского интерфейса, больший контроль WCF и возможность использования одного и того же языка программирования/инструментов на клиенте и сервере. Если вы выберете Silverlight, у вас будет больше гибкости по сравнению с тем, как данные передаются на сервер и с сервера, например, какой протокол использовать (TCP, HTML) и как передавать данные. Опции пользовательского интерфейса с Silverlight позволяют вам создавать очень богатый и захватывающий опыт с полной поддержкой дизайнеров и анимации.

ASP.NET Client:

Простой HTML-клиент может создаваться быстрее, так как вам не нужно будет учиться использовать Silverlight для создания эквивалентной функциональности. Даже при использовании только HTML, css и javascript, вы все равно можете иметь очень хороший пользовательский опыт, просто посмотрите на gtalk в качестве примера. Использование современных javascript-библиотек, таких как jQuery, еще больше упрощает создание сложного приложения, которое все еще легко понять и поддерживать.

Если вы хотите поиграть, развлекайтесь и узнайте что-то новое, возможно, рассмотрите возможность использования ASP.NET-клиента с базовым WCF RESTful-интерфейсом. Вы все еще будете иметь много контроля и гибкости как на клиенте, так и на сервере в отношении того, какие сообщения посылать, как клиент делает запросы, кэширование на сервере и т.д. Для того, чтобы легко переварить сообщение относительно RESTful WCF, посмотрите это сообщение Рика Страла.

Я написал похожий тип приложения для выполнения уведомлений в ASP.NET приложении, и был в состоянии вафлирования между выполнением push и опросом из клиента (см. этот вопрос о переполнении стека). Я был вдохновлён примером чата this, который использовал очень простой интерфейс и push-уведомление для клиента.

.
1
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: