SignalR vs HTML5 WebSockets для приложения ASP.NET MVC Chat
-
25-10-2019 - |
Вопрос
Я в большой дилемме, чтобы использовать веб -сайты HTML5 или SignalR для чата, который мы собираемся интегрировать в наше приложение ASP.NET MVC3
Мои дилеммы
1. Зачем использовать сигнал Если это реализует длительный срок?
2. Не так уж и плохо?
3. Websockets и Longpolling совершенно по -другому?
4.Только IIS8 поддерживает веб -питания?
5. Можно сохранить данные чата в базу данных SQL, используя веб -сайты HTML5?
6. Не имеется обходной путь для того, чтобы веб -токеты работали над IIS7 и более высокими версиями (я буду использовать только Chrome Browser)
Спасибо, что сделали со мной
Решение
Зачем использовать SignalR, если он реализует LongPolling?
Ответ: Чтобы включить поддержку старых браузеров или иметь более высокий уровень абстракции по поводу деталей реализации передачи данных. Если вы определенно будете использовать версию Chrome с поддержкой веб -билетов - используйте WebSockets (хорошее объяснение здесь).
Разве долго не плохо?
Ответ: На самом деле это не самое лучшее (см. Ссылку выше), но лучше, чем ничего для старых браузеров.
Веб -варианты и длиннопользователь совершенно по -другому?
Ответ: они совершенно разные (опять же, см. Ответ выше), но для них общий SMTH (они оба требуют соединения).
Только IIS8 поддерживает веб -питания?
Ответ: Если вы хотите использовать Pure .net Framework - да, только IIS 8 и .NET 4.5. Но вы можете использовать другой сервер WebSockets (см. Обходной путь ниже).
Могу ли я сохранить данные чата в базе данных SQL, используя веб -сайты HTML5?
Ответ: WebSockets - это всего лишь протокол для отправки данные, так буквально используй это Вы не можете выполнить какие -либо действия, кроме передачи данных. Однако, скажем, вы могли бы иметь токен, который будет отправлен на сервер и будет означать «сохранить все предыдущие данные в DB». Или у вас могут быть более сложные сценарии на основе различных сообщений, таких как вступление в Socket.io для node.js.
Не существует обходного пути, чтобы заставить веб -токеты работать над IIS7 и более высокими версиями (я буду использовать только Chrome Browser)
Ответ - да, просто не используйте IIS, а другую реализацию сервера веб -билетов (например, Флика - Имеет хорошую поддержку для «старых» браузеров, поддерживающих веб -записи) и запустите их вместе с IIS в качестве отдельного процесса.
Другие советы
SignalR может поддерживать веб -питания, если IIS и ваш браузер поддерживают это, если не использует Longpolling. Используя SignalR, сэкономит вам много времени, заново изобретая колесо, они доказали, что вы можете создать с ним хороший веб -сайт в чате.
4. Только IIS8 поддерживает веб -питания?
SignalR поддерживает IE <8 с JSON2.js. Просто возьми это с Nuget УСТАНОВКА json2
Убедитесь, что вы добавили ссылку на json2.js перед Signalr.js