#javascript #html #node.js #socket.io
Вопрос:
Онлайн-примеры обычно включают сокет.библиотека ввода-вывода с использованием
lt;script src="/socket.io/socket.io.js"gt;lt;/scriptgt;
Тем не менее, мне было интересно, почему это работает, хотя у меня нет сокета.папка ввода-вывода в моем каталоге. Запуск node index.js
автоматически создает этот сокет.папка ввода-вывода?
Комментарии:
1. Я в замешательстве. У вас есть какой-нибудь код, с которым вы боретесь? Или вы спрашиваете, как установить/использовать библиотеку?
2. @evolutionxbox Я спрашиваю, как работает эта часть кода, даже если я не создавал сокет. папка ввода-вывода
3. Вы пропустили все части, где вы объясняете, как вы создали проект, как вы запускаете код и как вы используете сокет. библиотека ввода-вывода. Вы установили его с помощью npm?
4. Я сделал
npm init
это для создания проекта. Затем я установил express и сокет. ввод-вывод с использованием npm. Я запускаю код, используяnode index.js
5. Поскольку библиотека была установлена с помощью npm, теперь существует сокет. папка ввода-вывода внутри
node_modules
.
Ответ №1:
Розетка.сервер ввода-вывода прослушивает все входящие запросы, которые начинаются с /socket.io
и «крадет» эти запросы для себя, сохраняя их от обычного http-сервера, с которого работает сокет.сервер ввода-вывода использует общий доступ.
Когда розетка.сервер ввода-вывода видит, что это запрос socket.io.js
файла, сокета.затем сервер ввода-вывода обращается к своему собственному node_modules/socket.io/client-dist
каталогу, чтобы получить socket.io.js
файл на стороне клиента, и отправляет его обратно клиенту.
Если вы посмотрите на то, что вы найдете в node_modules/socket.io/client-dist
каталоге, вы увидите файл socket.io.js
, находящийся там. Это файл, который находится в сокете.сервер ввода-вывода отправляет обратно клиенту. Это код на стороне клиента, только на сервере для отправки клиенту, когда он запрашивает его.
Имейте в виду, что ответы на входящие пути с http-сервером nodejs вовсе не обязательно касаются файловых каталогов на сервере. Если какой-либо код, подключенный к серверу http, обрабатывает входящий запрос, он может решить, что он хочет отправить в качестве ответа из любой точки сервера (из файла или нет). Только определенные инструменты промежуточного программного обеспечения, такие как express.static()
поиск на жестком диске сервера каталога, соответствующего входящему запросу.