Я изучаю Node.js и сейчас изучаю WebSockets. Насколько я понимаю, Socket.io был предназначен для устранения непоследовательной поддержки, которую различные браузеры имели с помощью WebSockets ... Если вы посмотрите caniuse WebSockets, похоже, что в настоящее время WebSockets имеет практически полную поддержку. Может ли кто-нибудь объяснить, почему я должен использовать Socket.io против WebSockets в этом случае?Почему я должен использовать Socket.io?
ответ
- Он обрабатывает изящную деградацию для вас многочисленных технических альтернатив, чтобы получить двунаправленную вблизи времени связь протекающий (веб-сокеты, AJAX длинный опрос, вспышки и т.д.)
- По состоянию на март 2013 года that site списки веб-сокеты при поддержке 61%. Это не «практически полно».
- Он обрабатывает несогласованность браузера и различные уровни поддержки для вас
- (эти первые 2 вещей, в основном такое же значение, созданное JQuery, чтобы положить его в перспективе)
- Она включает в себя дополнительные функции вне розовых веб-гнёзд, таких как поддержка номера для базовой инфраструктуры публикации/подписки и таких вещей, как автоматическое повторное подключение
- AFAIK это более популярно и проще получить помощь, чем ванильные веб-сокеты, по крайней мере, на данный момент.
Однако, так же, как есть VanillaJS для ненавистников JQuery, если вы предпочитаете использовать официальный API, стандартный веб-сокеты непосредственно, все средства, выбейте себя.
Gotcha. Да, я просто понял, что я полностью прочитал диаграмму caniuse неправильно - я не считал, что не все используют самый современный браузер: P. Глупая ошибка. Спасибо за ваш вклад! То, что вы сделали о jQuery (которое я использую), имеет смысл. Спасибо чувак. –
Хороший комментарий. В то время как много вещей изменилось в течение 2 лет с тех пор, как вы ответили на этот вопрос, я считаю, что №4 является лучшим ответом для всех. Если вы хотите использовать ванильные сокеты, пропустите Socket IO. Если вы ищете более грациозную интеграцию, попробуйте проверить ее. Естественно, если кто-то не согласен, не стесняйтесь исправить меня! :) – ReSpawN
- 1. Почему я должен использовать Array.toSource?
- 2. Почему я должен использовать список?
- 3. Почему я должен использовать [ProtoInclude]?
- 4. Почему я должен использовать Dispose()?
- 5. Почему я должен использовать «getattr()»?
- 6. Почему я должен использовать MXML?
- 7. Почему я должен использовать $ (это)?
- 8. Почему я должен использовать ActionbarSherlock?
- 9. Почему я должен использовать JPanel?
- 10. Почему я должен использовать UTC?
- 11. Почему я должен использовать isset?
- 12. Почему я должен использовать утверждения?
- 13. Почему я должен использовать DataForm?
- 14. Почему я должен использовать интерфейсы?
- 15. Почему я должен использовать HiddenField?
- 16. Почему я должен использовать поплавки?
- 17. Почему я должен использовать RedirectToAction?
- 18. Почему я должен использовать Flex?
- 19. Почему я должен использовать PassportJS?
- 20. Почему я должен использовать WinDbg?
- 21. Почему я должен использовать ssl?
- 22. Что я должен использовать? Socket.io номера или Redis pub-sub?
- 23. Почему я должен использовать «я» в функции?
- 24. Почему я должен использовать Powershell над C#?
- 25. Почему я должен использовать -lstdC++ fs?
- 26. Почему я должен использовать BeginWrite вместо Write?
- 27. Рельсы. Почему я должен использовать ActiveRecord?
- 28. Настройка Bootstrap: почему я должен использовать LESS?
- 29. Почему я должен использовать методы класса Assert?
- 30. Почему я должен использовать git вместо svn?
Это не то, что я бы назвал полным supoort imho, если вы не заботитесь о старых настольных компьютерах и мобильных браузерах, на которые приходится по крайней мере половина развернутых браузеров в западном мире, которые все еще будут использоваться в течение следующих 5 лет , и никогда не будет поддерживать websocket. – mpm
Хорошая точка. Я заметил, что Socket.io выясняет, какой метод подключения работает лучше всего, и делает это для вас, основываясь на том, какой браузер вы используете. Собственно, это, наверное, ответ прямо там. Я уверен, что если вы просто будете использовать WebSockets, вам придется самому вычислить весь код. –