Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

В ASP.Чистый способ:

  • Это полностью контролируется AJAX.
  • Вы должны имитировать дуплексную связь с помощью AJAX. По умолчанию HTTP не поддерживает дуплекс.Это односторонний путь.Он отвечает только на запрос клиента.Он не может напрямую вызывать клиентский метод .
  • Для достижения этой цели существуют доступные методы.Один из таких подходов называется КОМЕТА или Обратный ход.
  • Это не что иное, как долгоживущие вызовы AJAX, и он ответит клиенту, если на стороне сервера произойдет ожидаемое событие, в противном случае он остается спокойным.Это Комета (программирование) статья в Википедии подробнее описывает этот подход.

В СильвеРлайт - уэй:

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

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

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

Другие советы

Клиент Silverlight:

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

Клиент ASP.NET:

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

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

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

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

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

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

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

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

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

Редактировать:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top