-1

Web ページを要求するクライアント デバイスがあります。

データベース テーブル エントリが変更されたときにクライアントにデータを送信しようとしています。

問題: クライアントは「ブラウザ」ではありません。つまり、クライアント側のスクリプトは、ここでは役に立ちません。(マイクロ コントローラ)

最初の試みは、php と flush コマンドを使用することを考えていました。データベースの変更をチェックするループの中にいる間に、クライアントを待っていることを頻繁に出力する可能性があります。私にとってこれは、私のサーバーがその機能をサポートしているとは思わないためのメソッドのストレッチであり、「汚い」ように見えるので、本当に好きではありません:) ...

次に考えたのは、ループを使用して php がデータベースの変更を常にポーリングするようにすることです。クライアントはサーバーが終了するまで待つ必要があるため、「変更が発生するまで:)楽観的に」安定した接続が得られます。接続がタイムアウトした場合、クライアントを再接続できることを考慮してください。

さて、ちょっとばかげたストレッチはサーバーサイドJavaScriptです笑はい、私は尋ねました...多分私が知らない何かがある...

ここの誰かがこの知識の探求を助けてくれることを願っています

ありがとうございます

私のクライアントは現在:ポート8090でtcp接続を使用してソケットを開いています...次に、ソケット番号とサーバーアドレスとサーバーポート番号(80)を使用してWebサイトへの接続を開いています...これを関連付ける方法がわかりませんクライアントにデータを非常に控えめにストリーミングする必要があるタイプへのソケットのタイプ。

4

1 に答える 1

0

HTTP プロトコルに固執する必要がある場合 (他の可能な方法についてのコメントを参照)、meta refresh HTML headerについて読んでください。これは、クライアント側のスクリプトを作成せずに、あなたが求めたことを行います。

他に考えられるのは、データベースの更新をRSS フィードとしてセットアップすることです。

HTTP を使用しない方が良い設計に感じます。

非 HTTP ベースのメモ:

  • 1) 現在の HTTP リクエストを実行し、少しスリープ状態にしてから、同じプロセスを繰り返すことはできますか?
    • 特別なものや独創的なものは何もありません。しかし、これは基本的に他のオプションが行っていることです。
  • 2)同じソケットを使用して、読み取りをブロックすると、利用可能になるとすぐにより多くのデータを取得できます
    • Web サーバーは、ストリーミング メディア サーバーとして機能するように構成を調整する必要がある場合があります。
    • 38951
  • 解決策ではなく議論として、ストリーミング メディアを見てください。
于 2013-07-29T06:44:24.377 に答える