Nodejs vs SignalR: зачем нам серверный javascript?

Поскольку я знал о Node.js, я всегда был его поклонником. Но сегодня я нашел о SignalR, который предоставляет альтернативную асинхронную масштабируемую модель реального времени для ASP.NET.

Насколько я знаю, основным преимуществом Node.js над SignalR является обмен кодом между клиент-сервером (другое преимущество должно быть в том, что оно является кросс-платформенным), а главное преимущество SignalR - гораздо больше зрелые рамки и гораздо лучший инструмент (IDE). Поэтому мне интересно: если SignalR здесь, нам нужно Node.js на Windows больше? Существуют ли какие-либо преимущества Node.js Я не знаю?

Ответ 1

SignalR является жизнеспособной альтернативой Socket.IO и Node.js. Однако есть другие причины использовать javascript на сервере.

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

  • Передача сообщений очень естественна. JSON везде! В частности, в сочетании с базой данных документов, в которой используется JSON, вся передача сообщений становится объектами JSON. Это уменьшает количество брокерских сообщений, которые должны произойти во всей системе.

  • Это не Microsoft. Мне лично нравится то, что Microsoft сделала для сообщества разработчиков. Они делают фантастические инструменты и одну из лучших фреймворков и языков. При этом некоторые люди просто любят ненавидеть Microsoft.

  • Стоимость

    . Есть много хороших способов получить инструменты Microsoft бесплатно или очень дешево (Express edition и Biz Spark). Все еще более высокая стоимость связана с работой с инструментами Microsoft. Я полагаю, что в большинстве случаев это стоит того, чтобы повысить производительность, но не все согласны.

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