2013-12-19 2 views
7

Я много ищу о технике опроса, но я не могу найти ничего о том, как применить эту технику в asp.net mvc. Существует так много статей и документации, но большинство из них касается php и ajax.Как применить длительный опрос в ASP.NET MVC?

Я хочу использовать эту технику с моим проектом в двух местах, один из них - это система твитов, например, твиттер, а другая - чат-система. Мне любопытно, что лучший способ применить эту технику в MVC? Должен ли я использовать SignalR? Это лучший вариант?

Если вы можете дать мне образец или документацию, было бы здорово, спасибо!

+1

[SignalR документация] (HTTPS: //github.com/SignalR/SignalR/wiki). –

+0

Существует аналогичный вопрос [здесь] (http://stackoverflow.com/q/13905176/575530), но в то время как ни один из текущих ответов не предоставляет код, который вы используете после того, как они объясняют, как сложно пройти длинный опрос (например [ этот ответ] (http://stackoverflow.com/a/13915384/575530) обсуждает проблемы с настройками IIS и проблемы балансировки нагрузки, в то время как [этот ответ] (http://stackoverflow.com/a/13911164/575530) отмечает, как долго опрос может дегенерировать на короткий опрос или даже на самонастраиваемую атаку отказа в обслуживании!) – dumbledad

ответ

9

SignalR определенно подходит для того, чтобы вы могли передавать данные с сервера клиенту. Я попытался сделать это, используя менее хорошо поддерживаемую и развитую библиотеку, и я получил ее для работы, но из того, что я видел в примерах SignalR, это намного проще, чем то, что я сделал. Начните читать документы и пример кода на asp.net, это относительно прямо вперед.

Вот статья на Code Project, в которой показано, как мало кода вам нужно для достижения нажатия на сервер.

http://www.codeproject.com/Articles/524066/SignalR-Simple-Chat-Application-in-Csharp

Это происходит потому, что все тяжелое лифтинг для установления связи осуществляется API SignalR на сервере в .Net и на клиенте в JavaScript.

+3

Вы можете улучшить свой ответ, добавив ссылки. Возможно, вы также можете дать некоторую информацию о том, почему это путь. – Silvermind

4

Что такое «лучшее» решение, для обсуждения, и этот форум не об этом.

Если вы хотите сделать реальную одноранговую связь, SignalR этого не сделает - она ​​предназначена для передачи данных с сервера клиенту и выполнения удаленных вызовов процедур (RPC) из сервер для клиента.

Если вы хотите использовать n-way связь через сервер в качестве центрального концентратора, тогда SignalR, безусловно, путь. Это проверенная технология и полная поддержка Microsoft.

Корпорация Майкрософт выпустила учебное пособие по работе с SignalR 2.0 (http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20), которое реализует приложение чата.

2

Если вы хотите простой способ использования SignalR для связи на основе событий, вы можете посмотреть мою библиотеку, которая построена поверх SignalR.

Здесь можно увидеть, как установить его

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

Вы также можете загрузить демо-версию, чтобы проверить его и узнать, что путь

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Demo.MVC4

Смежные вопросы