2016-08-15 3 views
0

私は現在、自分のウェブサイトにスクリプトを作成しています。これには双方向の接続が必要です(スクリプトはチャットルームのウィンドウです)。しかし、私たちはソケットを作成したくありません。代わりに、クライアント(スクリプト)とサーバーの両方にHTTPリクエストをお互いに送信できるようにしたいと考えています。
(ウェブサイトサーバーとスクリプトサーバーは2つの異なるサーバーです)

クライアント(スクリプト)がサーバーにhttp要求を送信することは非常に簡単です。しかし、クライアント(スクリプト)がhttp要求を聞くのは大きな問題です。

私はいくつかの検索を行っていますが、何も見つかりませんでした。おそらく、この要件はあまり使用されていないほど奇妙ですか?ウェブページに埋め込まれたスクリプトでhttpリクエストを待ち受けることは可能ですか?

ウェブページでhttpリクエストを聞く

ありがとう!

+0

[WebSockets](https://en.wikipedia.org/wiki/WebSocket)を使用して、持続的な接続を開いたままにします。 – Phylogenesis

+1

ソケットが必要ない場合は、http://www.html5rocks.com/en/tutorials/eventsource/basics/ – Jag

+0

を試してみてください。それは私が探しているものです!しかし、IE/edgeはそれをサポートしていないようですね! –

答えて

2

HTTPリクエストを受信するためには、あなたがしなければならない:

  1. 公的にアクセス可能なIPアドレス
  2. を持っているが、開いているポートを持って、公にアクセス
  3. は聞くためにそのポートにプログラムをバインドHTTPリクエストの場合

ブラウザは3つすべてカウントダウンします。すべてのクライアントが、公開されている公開されたブロックされていないIPアドレスを持っていることを期待することはできません。しかし、そうであっても、ブラウザが着信要求を聞く方法はありません。ブラウザがHTTP クライアントであり、サーバーではないことが原因で、一部の理由で、このようなAPIを提供することはおそらくあらゆる種類の攻撃者に非常に強力なAPIを提供することになるからです。とにかくブラウザーには到達できないので、役に立たない(ポイント1を参照)。

だから、ブラウザをHTTPサーバにすることはできません。

WebSocketを使用してください。

+0

サーバーからHTTPリクエストを直接受け取ることはできませんが、まずサーバーにHTTPリクエストを送信して、サーバー送信用イベント(@ JAGのコメントの提案)を使用してデータ送信を開始できます。 –

+0

WebSocketは本質的に同じものですが、単方向であり、より制限されています。ブラウザはサーバとの接続を開き、両方とも接続を開いたままにします。 – deceze

関連する問題