В чем разница между сокетом.клиент ввода-вывода и сокет.сервер ввода-вывода? Альтернативы socket.io ?

#node.js #socket.io

#node.js #socket.io

Вопрос:

Я ломал голову над пониманием того, что именно такое socket.ввод-вывод и его роль во всей постоянной связи между клиентом и сервером в целом. Некоторые фундаментальные вопросы, которые постоянно возникают у меня в голове: :

  • Являются node.js и розетка.сервер ввода-вывода разными способами выполняет одно и то же? Нравится lighthttpd и apache?
  • Почему я должен использовать сокет.сервер ввода-вывода, если у меня есть node.js ?
  • Могу ли я использовать сокет.клиент ввода-вывода с другим языком программирования на стороне сервера, таким как PHP?
  • Существуют ли альтернативы использованию сокета.клиент ввода-вывода?
  • Является сокетом.клиент ввода-вывода — просто еще одна библиотека javascript для связи с websocket?

Спасибо 🙂

Ответ №1:

Сокет.Сервер ввода-вывода принимает соединения из сокета.Клиенты ввода-вывода. Это ничем не отличается от любого другого сервера (например, веб-сервера, такого как Apache), принимающего соединение от клиента (например, веб-браузера, такого как Internet Explorer).

Node.js это платформа, построенная поверх движка JavaScript версии 8, который поставляется с удобной библиотекой, обычно используемой для веб-и сетевых приложений. Сокет.IO — это оболочка связи, похожая на веб-сокет, и RPC, которая позволяет серверам и клиентам обмениваться данными по различным каналам передачи (от JSON с длительным опросом до реальных веб-сокетов). Как правило, сокет.Код сервера ввода-вывода выполняется в вашем приложении JavaScript, работающем поверх Node.js , и Розетка.Клиент ввода-вывода запускается в вашем JavaScript в веб-браузере. (Обратите внимание, что вы можете запустить сокет.Клиент ввода-вывода в вашем Node.js приложение к, которое я использовал в прошлом как быстрый RPC между несколькими Node.js приложения.)

Есть сокет.Клиенты ввода-вывода доступны для многих языков, и да, я считаю, что есть один для PHP, но я не использовал его лично.

Если вы хотите взаимодействовать с сокетом.Сервер ввода-вывода, вы должны использовать сокет.Клиент ввода-вывода. Это протокол сам по себе.

Ответ №2:

Являются node.js и розетка.сервер ввода-вывода разными способами выполняет одно и то же?

На самом деле SocketIO — это механизм ввода-вывода, который позволяет осуществлять связь в реальном времени между клиентом и сервером, в отличие от классических HTTP-запросов.

Почему я должен использовать сокет.сервер ввода-вывода, если у меня есть node.js ?

Поскольку оба они разные, мы не можем сравнивать.

Могу ли я использовать сокет.клиент ввода-вывода с другим языком программирования на стороне сервера, таким как PHP?

Нет, потому что сервер SocketIO работает в среде NodeJS. Клиент сначала делает HTTP-запрос, затем SocketIO отправляет статический JS-скрипт клиенту. Этот скрипт устанавливает двустороннюю связь. Но вы можете использовать сервер SocketIO с другой реализацией клиента SocketIO.

Существуют ли альтернативы использованию сокета.клиент ввода-вывода?

Любая клиентская реализация SocketIO может выполнить эту работу, поскольку они подключены к серверу. Но остерегайтесь асинхронного способа связи, например, в Java или PHP.

Является сокетом.клиент ввода-вывода — просто еще одна библиотека javascript для связи с websocket?

Да, это так, но SocketIO нацелен на надежность и простоту в использовании, а также прилагает все усилия: выбирает наилучший транспорт, доступный для клиента.

Надеюсь, это поможет!

Ответ №3:

Являются node.js и розетка.сервер ввода-вывода разными способами выполняет одно и то же? Нравится lighthttpd и apache?

Сокет.io — это фреймворк / библиотека для node.js

Почему я должен использовать сокет.сервер ввода-вывода, если у меня есть node.js ?

Это фреймворк, предназначенный для двусторонней связи, используйте его, если хотите

Могу ли я использовать сокет.клиент ввода-вывода с другим языком программирования на стороне сервера, таким как PHP?

Технически да. Но тогда вам придется переопределить сокет.сервер ввода-вывода на этом другом языке, чтобы соответствовать ему.

Существуют ли альтернативы использованию сокета.клиент ввода-вывода?

Много, google для веб-сокета / общения в реальном времени на [здесь укажите свой язык]

Является сокетом.клиент ввода-вывода — просто еще одна библиотека javascript для связи с websocket?

Сокет.клиент ввода-вывода — это библиотека JavaScript, совместимая с сокетом.сервер ввода-вывода (который также является библиотекой JavaScript, только на стороне сервера, т.е. Node.js )