Как там розетка.каталог ввода-вывода распознан

#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() поиск на жестком диске сервера каталога, соответствующего входящему запросу.