Сигнал vs html5 веб-сокетов для приложения чата asp.net MVC - PullRequest
8 голосов
/ 16 февраля 2012

Я в большой дилемме: использовать html5 websockets или signalR для чата, который мы собираемся интегрировать в наше приложение asp.net mvc3

Мои дилеммы
1.Почему использовать signalR если он реализует лонгполлинг?
2.Не работает ли длинный лонгполлинг плохо?
3.websockets и лонгполлинг совершенно разные?
4. Только IIS8 поддерживает веб-сокеты?
5.Canя сохраняю данные чата в базе данных SQL с помощью веб-сокетов Html5?
6.Не существует ли обходной путь, чтобы веб-сокеты работали на IIS7 и более поздних версиях (я буду использовать только браузер Chrome)
Спасибо, что согласились со мной

Ответы [ 4 ]

11 голосов
/ 12 августа 2013
  1. Зачем использовать signalR, если он реализует longpolling?

    Ответ: чтобы включить поддержку старых браузеров или иметь более высокий уровень абстракции по сравнению с деталями реализации передачи данных.Если вы определенно будете использовать версию Chrome с поддержкой веб-сокетов - используйте веб-сокеты (хорошее объяснение здесь ).

  2. Не является ли длинный опрос плохим?

    Ответ: на самом деле это не самый лучший (см. Ссылку выше), но лучше, чем ничего для старых браузеров.

  3. веб-сокеты и лонгполлинг совершенно разные?

    Ответ: ониони довольно разные (опять же, см. ответ выше), но у них есть что-то общее (они оба требуют подключения).

  4. Только IIS8 поддерживает веб-сокеты?

    Ответ: если вы хотите использовать чистый .NET Framework - да, только IIS 8 и .NET 4.5.Но вы можете использовать другой сервер веб-сокетов (см. Временное решение ниже).

  5. Можно ли сохранить данные чата в базе данных SQL с помощью веб-сокетов Html5?

    Ответ: веб-сокеты - это толькопротокол для отправки данных , поэтому буквально используя его , вы не можете выполнять никаких действий, кроме передачи данных.Однако вы можете, скажем, иметь токен, который будет отправлен на сервер и будет означать «сохранить все предыдущие данные в БД».Или вы могли бы иметь более сложные сценарии, основанные на различного рода сообщениях, таких как дополненные в socket.io для node.js .

  6. Нет ли обходного пути, чтобы заставить веб-сокеты работать на IIS7 и более поздних версиях (я буду использовать только браузер Chrome)

    Ответ - да, просто не используйте IIS,но другая реализация сервера веб-сокетов (например, Fleck - имеет хорошую поддержку "старых" браузеров, поддерживающих веб-сокеты) и запускает ее вместе с IIS как отдельный процесс, например.

7 голосов
/ 16 февраля 2012

SignalR может поддерживать веб-сокеты, если IIS и ваш браузер поддерживают это, если нет, он использует longpolling.Использование SignalR сэкономит вам много времени на изобретение колеса, они доказали, что вы можете создать с ним хороший чат-сайт.

0 голосов
/ 23 августа 2017

enter image description here

Надеюсь, это решит все ваши вопросы.

0 голосов
/ 17 февраля 2012

4.Только IIS8 поддерживает веб-сокеты?

SignalR поддерживает IE <8 с Json2.js.Просто получите его с помощью Nuget <strong>install-package json2

Убедитесь, что вы добавили ссылку на json2.js ПЕРЕД signalR.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...