Подтвердить что ты не робот

Различия между webhook и websocket

Я всегда хотел сделать чат в режиме реального времени.

Я сделал это несколько лет назад в PHP + Ajax + Mysql и сломал мой сервер. Затем я попытался использовать Flash + текстовый файл. Я сдался и не пробовал через 10 лет. Но в последнее время я слышал о webhooks и websockets. И оба они кажутся способ сделать это, но я действительно не совсем понимаю разницу. Кто-нибудь может объяснить?

4b9b3361

Ответ 1

Webhooks

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

В этой статье говорится о некоторых способах использования веб-узлов в популярных сервисах. Эта организация много говорит об использовании их в контексте API RESTful.

WebSockets

Websockets (обычно) для связи между сервером и браузером. Сервер размещает сервер websocket, и клиенты могут открывать соединение с этим сервером. Это популярно сейчас главным образом потому, что это быстрее и меньше ресурсов, чем старые способы решения проблемы, такие как long-polling/COMET.

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

Путаница

Несмотря на то, что один из них (исключительно) сервер-сервер, а один (в основном) браузер-сервер, эти технологии часто обсуждаются в тех же местах, почти так же, как они решают одни и те же проблемы. Если вы посмотрите на цепочку достаточно высоко, вы увидите, что они оба решают проблему связи "реального времени", но они решают разные аспекты этой проблемы по-разному.

Одна ситуация, когда может быть прямое сравнение, если вы создаете API, который будет использоваться сторонним сервером. В этой ситуации вы можете предоставить API-интерфейс webhook или API-интерфейс websocket. Оба позволяют третьей стороне быстро получать обновления, но если вы выберете веб-узлы, третьей стороне все равно придется выяснить, как продвигать изменения, которые вы рассказываете им о своих клиентских браузерах. Если вы предоставляете API-интерфейс websocket, третья сторона может просто настроить свой сайт, чтобы каждый из их пользователей напрямую подключался к вашему API-интерфейсу websocket, и их серверы должны делать меньше работы.