Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как осуществляется клиент-серверное взаимодействие в Node.js?

Сергей Шипилов Мастер (1034), закрыт 8 лет назад
Есть ли ссылки на материалы с описанием какого либо примера вызова сервера с клиента и передачей информации между ними? Т. е. Как можно с веб-страницы вызвать серверную функцию Node.js
p.s. Моё обучение чему то всегда носит практический характер)) Прошу не злиться, если кому то этот вопрос может показаться глупым.
Лучший ответ
Просветленный (26672) 8 лет назад
> Как можно с веб-страницы вызвать серверную функцию Node.js
Либо AJAX-запросом (протокол HTTP),
либо через WebSocket (протокол TCP): отправить серваку пакет, а он будет его асинхронно ждать, и когда сервак получит пакет, то у него выполнится обработчик события. После чего сервак может тоже послать нам пакет и мы так же его получим с помощью события.

TCP удобен для чатов: вместо того, чтобы все время делать запросы и следить, нету ли новых сообщений, мы просто открываем соединение и создаем обработчик события. Так же и со стороны сервака.

Обычный бек-енд для аякса, то есть REST API, без проблем реализуется и на PHP, и на Ruby, и на чем угодно еще.
А вот WebSocket - это уникальная фича NodeJS, хотя теоретически тоже возможно почти на чем угодно, но именно в NodeJS самые удобные средства для этого.
Сергей ШипиловМастер (1034) 8 лет назад
Спасибо большое! Как же всё оказалось просто)) Именно то, что нужно!
Остальные ответы
Άηϑρέΰ ҂ Искусственный Интеллект (179793) 8 лет назад
а что по этому поводу форумы говорят?
Сергей ШипиловМастер (1034) 8 лет назад
Я не находил ничего конкретного по данному вопросу на форумах.
Άηϑρέΰ ҂ Искусственный Интеллект (179793) http://nodebeginner.ru/ тут почитайте, но не через строку, а как полагается : полностью и со смыслом
Ирэн Ницше Искусственный Интеллект (213135) 8 лет назад
Да как и везде в вебе. Сайт-то по-любому в браузере, и по-любому на HTML, CSS, JavaScript. Поэтому он ВСЕГДА отправляет на сервер запросы GET и POST, а серверные скрипты их выполняют, на чем бы они ни были написаны. А результат выводят или через аякс, или в них есть что-то для вывода вроде echo в php.
Сергей ШипиловМастер (1034) 8 лет назад
Ирэн, пожалуйста))
Нужен конкретный пример с Node.js, иначе понять буду не в состоянии.
Ирэн Ницше Искусственный Интеллект (213135) У меня его нету, но в гугле вам сойдет любой серверный скрипт на ноде.
Просветленный (26672) 8 лет назад
> Поэтому он ВСЕГДА отправляет на сервер запросы GET и POST
НЕТ. Клиентский JS умеет еще и чистый протокол TCP (Raw Sockets).
Как выглядит HTTP-запрос?
1) Открывает соединение
2) Шлем серваку TCP-пакет, т. е. запрос (заголовки + тело)
3) Сервак тоже шлет нам TCP-пакет, т. е. ответ (заголовки + тело)
4) Закрываем соединение
А TCP в чистом виде позволяет постоянно держать соединение открытым, чтобы мы асинхронно ждали, пока сервак пришлет нам пакет (тогда у нас сработает событие), и сервак тоже ждал наших пакетов.
Применяется, например, в чатах: чтобы проверить нет ли новых сообщений, мы не шлем по запросу каждую секунду, а просто создаем обработчик события - и открываем соединение.

NodeJS наиболее удобен для реализации таких серваков - и для изучения протокола TCP в плане сниффинга))
Сергей Шипилов Мастер (1034) Спасибо. Вот объяснение такого вида лучше до меня доходит)) Есть работающие примеры (листинг клментского кода), где отсылается пакет в виде параметров?
Похожие вопросы