Comments 17
И ставить модули поэтому надо с ключом --save, например «npm install express --save», тогда этот модуль сразу будет прописан в зависимостях.
npm install http
Что? Это https://npmjs.com/http, зачем он вам? Это пустой пакет, с одной версией 0.0.0
, опубликованной три года назад.
В Node.js есть встроенный модуль http
, скорее всего, вы хотели его. Ваша ссылка, кстати, на https://npmjs.com/http-server ведёт почему-то.
И да, как выше сказали — прописывайте зависимости в package.json
.
node-modules
node_modules
Вы скачаете архив, и оттуда вы должны достать файл «socket.io.js» и перекинуть в папку с проектом.
Нет-нет-нет-нет. Не надо так делать. Используйте менеджеры зависимостей, например npm
или bower
— клиентские библиотеки тоже тяните оттуда, тогда они и у вас в репозитории валяться не будут, и обновлять проще, и сразу будет поднятно, какая версия чего.
https://code.jquery.com/jquery-3.1.0.min.js
Для изменения значения textarea
? Серьёзно? И нет, не надо так тоже делать — если оно действительно нужно, поставьте зависимостью, не стоит со стороннего CDN тянуть. Помним про videojs.
И, самое главное — зачем socket.io
? Почему нельзя было ограничиться штатными вебсокетами?
Совсем забыл:
за это время много чего произошло
Например, появился ECMAScript 2015 с const/let и стрелочными функциями. ESLint круто линтит код. IE9 и встроенный андроид браузер 4.3 (не путать с хромом на андроиде 4.3) умерли, штатные вебсокеты поддерживается всем. Использования jQuery для тривиальных операций не особо-то и нужно уже давно. =).
И да — не в обиду автору, а улучшения ситуации для.
В целом такие статьи с простыми примерами нужны, да.
В сокетах есть один подводный камень, который всплывает при работе на кластерах (или многопоточных приложениях). Сокеты ломаются, при использовании протокола long polling, поэтому при создании многопоточного приложения используйте websocket. Так как протокол websocket не всеми старыми браузерами поддерживается, то по умолчанию в socket.io выбран протокол long polling.
Если интересно, то могу написать более подробно в отдельном посте.
Socket.IO's «Hello world» is a chat app in just a few lines of code.
И, мягко говоря, непонятно, чем решение автора лучше кода от socket.io.
Хотя, справедливости ради, надо заметить что у них есть досадная ошибка — в jquery-коде они не оборачивают назначение событий в $(function (){, поэтому отправка формы срабатывает не так как надо, и с этим моментом приходится разбираться самому. Автор статьи этого избежал.
Это не плохо — изучать, помогать таким же новичкам (я истины не знаю, но статья тянет на новичка).
Но даже если и так, то вряд ли эта статья поможет понять малошарящему, почему используя express-generator(который рекомендует сам express) не получится Вашим способом настроить socket.IO, понять, как работает express, io.attach и прочее. А создать «простой чат на Socket.IO [2016] \ Node.js» можно взяв пример с сайта socket.io (как уже не раз упоминалось выше).
2. log4js # Отличный логгер
Чем этот логгер лучше стандартного 'debug', и почему выбор пал именно на него?
Разработка простого чата на Socket.IO [2016] \ Node.js