ホームページ  >  記事  >  バックエンド開発  >  PHPで数秒ごとにデータを読み取る方法

PHPで数秒ごとにデータを読み取る方法

WBOY
WBOYオリジナル
2016-06-23 13:33:101343ブラウズ

プロジェクトの主な機能は、登録された com
を使用して php 経由で com インターフェイスを呼び出し、リモートサーバーに接続してデータを読み取り
、そのデータを Web ページに表示することです。
$com->connect(server);
$com->read();

window.setInterval と ajax を介して php ファイルを呼び出すことで、一定時間ごとに読み取ることが可能になりました
しかし、これには問題がありますメソッド 深刻な問題です。毎回読み取る前にサーバーに接続する必要があります
1 回だけ接続して、その後は読み取るだけの方法があるかどうかはわかりません。

シングルトン モードを使用しようとした以前の試みも機能しませんでした。


ディスカッション(解決策)に返信

プログラムが終了しない限り、再接続する必要はありません

プログラムが終了しない限り、再接続する必要はありません


おそらく私はそれを明確にしていませんでした
a.php:
$comvar = new COM("aaa.client") or die("create failed");
$comvar->connect(server); ;
$comvar->read ();
?>
ajax は a.php を複数回呼び出すと毎回接続します
$comvar 変数には C 言語のようなグローバル変数を設定できません$comvar->read();

mysql に永続的に接続することは可能ですか? mysql_pconnect()

mysql に永続的に接続することは可能ですか? Mysql_pconnect()


接続メソッドは mysql ではなく com にカプセル化されます

リクエストが終了するたびに、現在の PHP 実行プロセスは自動的に解放されるため、PHP は何もする必要がありません。

ネットワーク接続の場合、サーバーが nginx の場合、nginx を使用して http ロング接続を行うことができます。この方法では、PHP サーバーは、接続するときに 1 つのネットワーク接続のみを持ちます。現在のマシン。

これに対する解決策はありません。
実行のたびに接続が切断されます。ソケットを使用して接続している場合を除きます。

フロントエンドは setInterval を使用しているため、一度接続してから直接読み取ることはできません

フロントエンドの WebSocket と PHP ソケットに変更できます

まだ私の言っている意味が理解できません: プログラムが存在する限りは終了しません。再接続する必要はありません
ただし、HTTP セッションでは、php プログラムはセッション中にのみ実行されます。つまり、セッションが終了すると、プログラムも終了します
したがって、再接続は避けられません。 C 言語プログラムはプログラムが終了するまで実行され続けるため、その動作を誤解しないでください。したがって、再接続する必要はありません
WebSocket を使用する場合、セッションは HTTP ではなく、WebSocket プロトコル (略して WS) になります。当然、動作は異なります

それでも、私が何を言っているのか理解できません。プログラムが終了しない限り、再接続する必要はありません
ただし、HTTP セッションでは、php プログラムはセッション中にのみ実行されます。つまり、セッションが終了するとプログラムも終了します
。そのため、再接続は必要ありません。避けられない。 C 言語プログラムはプログラムが終了するまで実行され続けるため、その動作を誤解しないでください。したがって、再接続する必要はありません
WebSocket を使用する場合、セッションは HTTP ではなく、WebSocket プロトコル (略して WS) になります。当然、動作は異なります



最初は本当に理解できませんでした。でも今は理解しました、それは費やされました 2日でWebSocketに切り替えました
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。