1. ホーム
  2. websocket

[解決済み] webhookとwebsocketの違い

2022-11-13 19:57:59

質問

リアルタイムチャットをやりたいとずっと思っていました。

私は数年前にPHP+Ajax+Mysqlでそれを行い、私のサーバーを壊したことがあります。その後、Flash+テキストファイルで試しました。私はあきらめて、10年間は試していません。しかし、最近、webhooksとwebsocketについて耳にしました。そして、どちらもそれを行うための方法のようですが、私は本当に違いを把握することはできません。どなたか説明していただけませんか?

どのように解決するのですか?

ウェブフック

ウェブフック は、サーバ間通信のためのものです。 あるサーバーが別のサーバーに、何かが起こったときに特定の URL にデータを送信してほしいと伝えることで機能します。

この記事 は、人気のあるサービスにおける webhook のいくつかの使用法について述べています。 この組織 は、RESTful API のコンテキストでそれらを使用することについて多くのことを語っています。

ウェブソケット

ウェブソケット は、(通常は)サーバーからブラウザへの通信のためのものです。 サーバーは Web ソケット サーバーをホストし、クライアントはそのサーバーへの接続を開くことができます。 これが現在人気があるのは、ほとんどの場合、次のような古い問題解決方法よりも高速でリソースの占有率が低いからです。 long-polling / コメット .

それは ウェブソケットを使用して2つのサーバを接続することができます。 しかし、それは通常使用されるものではありません。

混乱

一方は (専ら) サーバー - サーバーであり、一方は (主に) ブラウザー - サーバーであるにもかかわらず、これらの技術はしばしば同じ場所で、まるで同じ問題を解決しているかのように語られています。 十分に高い連鎖を調べると、どちらも "リアルタイム"通信の問題を解決していることがわかりますが、しかし この問題のさまざまな側面を、まったく異なる方法で解決しているのです。 .

直接比較できる状況として、サードパーティのサーバーによって消費されるAPIを構築している場合があります。 そのような状況では ウェブフックAPI または ウェブソケットAPI . どちらも、第三者が素早く更新を取得することを可能にします。

  • Webhooks を選択した場合でも、その第三者は、あなたが伝えた変更をクライアントのブラウザにプッシュする方法を見つけなければなりません。
  • Web ソケット API を提供する場合、サードパーティは、各ユーザーが Web ソケット API に直接接続するようにサイトをセットアップするだけでよく、サーバーはあまり仕事をしなくて済みます。