2013-03-03 2 views
7

Я изучаю Node.js и сейчас изучаю WebSockets. Насколько я понимаю, Socket.io был предназначен для устранения непоследовательной поддержки, которую различные браузеры имели с помощью WebSockets ... Если вы посмотрите caniuse WebSockets, похоже, что в настоящее время WebSockets имеет практически полную поддержку. Может ли кто-нибудь объяснить, почему я должен использовать Socket.io против WebSockets в этом случае?Почему я должен использовать Socket.io?

+0

Это не то, что я бы назвал полным supoort imho, если вы не заботитесь о старых настольных компьютерах и мобильных браузерах, на которые приходится по крайней мере половина развернутых браузеров в западном мире, которые все еще будут использоваться в течение следующих 5 лет , и никогда не будет поддерживать websocket. – mpm

+0

Хорошая точка. Я заметил, что Socket.io выясняет, какой метод подключения работает лучше всего, и делает это для вас, основываясь на том, какой браузер вы используете. Собственно, это, наверное, ответ прямо там. Я уверен, что если вы просто будете использовать WebSockets, вам придется самому вычислить весь код. –

ответ

9
  1. Он обрабатывает изящную деградацию для вас многочисленных технических альтернатив, чтобы получить двунаправленную вблизи времени связь протекающий (веб-сокеты, AJAX длинный опрос, вспышки и т.д.)
    1. По состоянию на март 2013 года that site списки веб-сокеты при поддержке 61%. Это не «практически полно».
  2. Он обрабатывает несогласованность браузера и различные уровни поддержки для вас
    1. (эти первые 2 вещей, в основном такое же значение, созданное JQuery, чтобы положить его в перспективе)
  3. Она включает в себя дополнительные функции вне розовых веб-гнёзд, таких как поддержка номера для базовой инфраструктуры публикации/подписки и таких вещей, как автоматическое повторное подключение
  4. AFAIK это более популярно и проще получить помощь, чем ванильные веб-сокеты, по крайней мере, на данный момент.

Однако, так же, как есть VanillaJS для ненавистников JQuery, если вы предпочитаете использовать официальный API, стандартный веб-сокеты непосредственно, все средства, выбейте себя.

+0

Gotcha. Да, я просто понял, что я полностью прочитал диаграмму caniuse неправильно - я не считал, что не все используют самый современный браузер: P. Глупая ошибка. Спасибо за ваш вклад! То, что вы сделали о jQuery (которое я использую), имеет смысл. Спасибо чувак. –

+0

Хороший комментарий. В то время как много вещей изменилось в течение 2 лет с тех пор, как вы ответили на этот вопрос, я считаю, что №4 является лучшим ответом для всех. Если вы хотите использовать ванильные сокеты, пропустите Socket IO. Если вы ищете более грациозную интеграцию, попробуйте проверить ее. Естественно, если кто-то не согласен, не стесняйтесь исправить меня! :) – ReSpawN

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