Разница между сокетом, socketio и веб-сокетами - PullRequest
1 голос
/ 20 июня 2020

Может ли кто-нибудь объяснить мне разницу между socket, socketio, flask socketio по отношению к python? А чтобы использовать этот сокет с флаттером, какой код писать на бэкэнде? Как мне написать сервер и клиент или только клиент?

Ответы [ 3 ]

1 голос
/ 22 июня 2020

Вкратце, WebSockets - это тонкий транспортный уровень, построенный поверх стека TCP / IP устройства. Намерение состоит в том, чтобы предоставить разработчикам веб-приложений то, что по сути является максимально приближенным к необработанному уровню связи TCP, с добавлением нескольких абстракций для устранения определенных трений, которые в противном случае существовали бы в отношении того, как работает Интернет. Они также учитывают тот факт, что в Интернете есть дополнительные соображения безопасности, которые необходимо учитывать для защиты как потребителей, так и поставщиков услуг. Подробное описание Ably - отличный ресурс для знакомства с веб-сокетами: http://go.ably.com/websockets

Socket.IO - отличный инструмент для разработчиков, желающих установить двунаправленные сокетные соединения между клиентом и сервер. Это значительно упрощает реализацию простых приложений, таких как чат. Socket.IO упрощает многие вещи и предоставляет резервные возможности для неподдерживаемых клиентов, но имеет свои собственные недостатки. Ably также написал концептуальную статью, описывающую основные варианты использования Socket.IO и способы начала работы: http://go.ably.com/socketio

0 голосов
/ 21 июня 2020

A socket - это одна конечная точка двустороннего канала связи между двумя программами, работающими в сети. Это очень низкоуровневая вещь, все остальное реализовано поверх сокетов TCP.

WebSocket - стандартный протокол связи для Интернета. Он позволяет установить полнодуплексный канал связи между клиентом и сервером.

Socket.IO - это протокол связи, который строится поверх HTTP и WebSocket, обеспечивая дополнительные функции например, автоматическое c повторное подключение, уведомления на основе событий и т. д. c.

Flask -SocketIO - это реализация серверного протокола Socket.IO как Flask extension.

Чтобы получить доступ к серверу Socket.IO из вашего приложения flutter, вам необходимо использовать клиент Socket.IO. Сам я не использую флаттер, поэтому рекомендовать его не могу.

0 голосов
/ 21 июня 2020

HTTP-запрос выглядит примерно так: если мы пишем что-то в URL-адресе или строке поиска с помощью браузера, то

  1. Браузер отправляет запрос на сервер, то есть HTTP-запрос выполняется на сервер.
  2. Сервер отвечает браузеру некоторыми данными.

Это что-то запрашивает, получите что-то вроде системы, отлично работающей для самых разных вещей, таких как чтение новостей или проверка погода.

Но если вы хотите получать информацию в более реальном времени, например, в чате, вам придется запрашивать все время.

Цель Websocket - обеспечить постоянное 'соединение с внутренним сервером, чтобы клиенту не приходилось ждать следующего раза, как это делает браузер.

Таким образом, любой может создать комбинированную систему внутреннего и внешнего интерфейса, которая может очень быстро и реагировать на новые данные, как если бы это был поток, поступающий в ваш клиент (например, веб-клиент, мобильное приложение)

Вы должны написать как сервер, так и клиент для работы приложений в реальном времени, и клиент должен быть подключен к серверу.

Если вы хотите сделать приложение для видеозвонка, вам необходимо обменяться некоторой информацией, например SDP , Кандидат ICE , и др. c Итак, чтобы обмениваться этой информацией, вам необходимо разработать сервер сигнализации, чтобы сервер мог отправлять эту информацию в реальном времени своему соответствующему клиенту.

На каждой платформе вы можете использовать технологию сокетов. Итак, socketio, flask socket - это разные формы одного и того же на разных платформах.

...