ホームページ >バックエンド開発 >PHPチュートリアル >PHPでターミナルにメッセージをアクティブに送信する方法

PHPでターミナルにメッセージをアクティブに送信する方法

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

このようなアプリケーションシナリオがあります。背景情報公開システムの制御端として php があり、顧客がブラウザで再起動をクリックしたときに屋外情報公開端末 (広告機、屋外ディスプレイなど) を制御するために使用されます。ページ、スイッチ コンピュータが実行中または他の操作を実行しているときに、この情報を端末にアクティブに送信するにはどうすればよいですか?
いくつかのプッシュ方法を検討しましたが、それらの多くはまだ端末が最初にリクエストを送信する必要があります。誰かアドバイスをいただけますか。


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

ターミナルとは何ですか? あなたの要求は少し異常です。これはすでにソフトウェア開発の範囲内にあるはずです。

顧客がブラウザ ページで [再起動] をクリックしたとき、コンピュータの電源をオン/オフしたとき、またはその他の操作を実行したとき、この情報を端末にアクティブに送信するにはどうすればよいですか?
これは、ディスプレイ画面の種類によって異なります。SOCKET を使用して接続できる場合は、SOCKET を使用して接続します。

端末は、広告機、屋外スクリーンなどです。

http でそれができない場合は、PHP で積極的に情報を送信するためにソケットを使用することを検討できます。



顧客がブラウザ ページで [再起動] をクリックしたり、コンピュータの電源をオン/オフしたり、その他の操作を実行したとき、この情報を端末にアクティブに送信するにはどうすればよいですか?

これはディスプレイ画面のタイプによって異なります。SOCKET を使用して接続できる場合は、SOCKET を使用して接続してください。
第一に、情報を公開する権限を持っている人はごく一部の人だけです。第二に、すべてがネットワークを通じて制御されているので、認可機能を持つクライアントを作成し、端末に直接情報を送信するだけで十分ではないでしょうか。コントロールされるのか? Web ページを作成する必要はまったくなく、すばやく簡単に作成できます。 PHP を使用するためだけに PHP を使用しないでください。そのような使用法では改善の可能性はまったくなく、要件が容易に実現されないため、非常に恥ずかしい思いをすることになります。

端末は広告機、屋外スクリーンなどです。
http でそれができない場合は、PHP で積極的に情報を送信するためにソケットを使用することを検討できます。

2 階の zhouzhipen からの返信を引用します:

顧客がブラウザ ページで [再起動] をクリックしたり、コンピューターの電源をオン/オフにしたり、その他の操作を実行したりした場合、この情報を端末にアクティブに送信するにはどうすればよいですか?
これは、SOCKET を使用して接続できる場合は、SOCKET を使用して接続します

はい、「広告マシン、屋外画面」がどのように PHP サーバーに接続されているかによって異なります。は php のソケット ライブラリですが、他にも多くのメソッドがあり、それらは必ずしも必要ではありません


これで、php を使用してソケットを作成する方法がわかりました。

ご返信ありがとうございます。私たちは要件について混乱していません。あなたが肯定していることのいくつかは正確には当てはまりません。


この種の要求に B/S モードを使用するだけでは明らかに十分ではありません。 第一に、情報を公開する権限を持っている人はごく一部の人だけです。第二に、すべてがネットワークを通じて制御されているので、認可機能を持つクライアントを作成し、端末に直接情報を送信するだけで十分ではないでしょうか。コントロールされるのか? Web ページを作成する必要はまったくなく、すばやく簡単に作成できます。 PHP を使用するためだけに PHP を使用しないでください。そのような使用法では決して改善の可能性はありません。むしろ、要件を簡単に実現できないため、非常に恥ずかしい思いをすることになります。



問題の核心は、このプロジェクトに取り組んでいる人が PHP の半分しか知らないということです。何を言っているのですか...

7 階のハーフトーン php について何か良い提案はありますか?何を言っているのですか...

端末とサーバーは以前は http 経由で接続されていました。以前の方法は、ページ上で操作が発生すると、操作命令をファイルに保存し、端末が定期的に送信するというものでした。 http を使用してこのファイルを取得します。ここで、サーバーがこれらの操作命令を端末に積極的にプッシュできるかどうかを考えてみましょう。

5階の他の方法は何ですか?アドバイスをいただけませんか


3階のchallchampionさんからの返信を引用します:

端末とは広告機、屋外スクリーンなどです。

http でそれができない場合は、PHP で積極的に情報を送信するためにソケットを使用することを検討できます。


2 階の zhouzhipen からの返信を引用します:

顧客がブラウザ ページで [再起動] をクリックしたり、コンピューターの電源をオン/オフしたり、その他の操作を実行したりした場合、この情報を端末にアクティブに送信するにはどうすればよいですか?
これは、お使いのディスプレイの種類によって異なります。SOC を使用できるかどうかは...


私だったら、絶対に PHP を使用しません。必要に応じて、PHP をフロントデスクとして使用し、制御のために PHP の入力データを受け取るサーバーを作成します。または、PHP を脇に置き、サーバーとクライアントを直接開発します

おそらく PHP は修正されており、データを送信するためにフロントエンドとバックエンド (広告マシン) の両方に PHP を設定することもできます。 win 操作システムです。get をポストしてから処理する方が簡単です。イベントをバッチ ファイルに処理して呼び出します。7 階で何か良い提案はありますか?

7 階の phpnewnew の返信を引用します:

問題の鍵は、このプロジェクトに取り組んでいる人々が中途半端な PHP しか知らないということです。何を言っているのですか...


まず、方法を決定します。端末とサーバーが通信します

タイミング ajax は大丈夫ですか?

現在、広告機などの製品は組み込みアーキテクチャーを採用しており、リソースも比較的限られており、また、B/S 制御側は他社の広告機と接続する必要があるため、他社と交渉するのが精いっぱいです。合意について当事者が話し合う。

php を脇に置いて、サーバーとクライアントを直接開発するとはどういう意味ですか?


私だったら、PHP を使用することは絶対にありません。必要に応じて、PHP をフロントデスクとして使用し、制御用の PHP 入力データを受け取るサーバーを作成します。または、PHP を脇に置き、サーバーとクライアントを直接開発します

おそらく PHP は修正されており、データを送信するためにフロントエンドとバックエンド (広告マシン) の両方に PHP を設定することもできます。 win 操作システム。get をポストしてから処理するだけです。これははるかに簡単です...イベントをバッチ ファイルに処理して呼び出します...


引用 8...


前の方法は 9 日に言及されました。フロア、この方法が改善されることを願っています
サーバープッシュでは基本的にクライアントとサーバーが長い接続を確立する必要があるようですが、これが正しいかどうかはわかりません。理解。

他の方法、tcp または udp も考慮できます


まず、端末とサーバーがどのように通信するかを決定します


私の端末は (広告マシン) Linux システムであり、ブラウザはありません。スケジュールされた ajax アイデアは次と同じです私たちの以前の方法。それを改善する方法があることを願っています。現在、サーバーが積極的にプッシュできることを願っています

スケジュールされた ajax を使用することは可能ですか?



PHP を使わずにサーバーとクライアントを直接開発するとはどういう意味ですか?

私が話しているのは、あなたが持っているCSです。

そのようなインターフェースを相手に公開してもらいましょう。これは、あなたに任せて解決する必要はありません。

私たちもそれを持っています 広告機があなた自身のものに接続されている場合、どの方法がより適していると思いますか?

PHP を使わずにサーバーとクライアントを直接開発するとはどういう意味ですか?


私が話しているのは、あなたが持っているCSです

顧客はあなたのようなニーズを持っているはずです

私たちがインターフェースを提供する必要があります。あなたのシステムはあまり明確ではありません

「広告マシン」が何であるかわかりませんが、これは Linux 上で実行される単なるソフトウェアですか?

これは、広告マシン (A) が PHP サーバー (B) と通信する方法です。質問です。


もちろん、現在のメソッドは機能します。実際、現在のメソッドが正常に実行されている場合、A 間の通信を変更する必要はありません。通常、B にはサービス端末として 1 つ、クライアントとして 1 つがあり、現在の方法は B がサーバー、A がクライアントです

「プッシュ」したい場合は、長時間の接続またはサーバーからの特別なサポートが必要です、これは現在一般的ではありません。Ajax ポーリングは実際にはあなたのものと同じです。現在のソリューションは同様であり、あなたの A はブラウザではないため、適用できません

ナンセンスの後で、簡単に言ってみましょう。 LinuxなのでAをサーバーにして、その上でデーモンプロセスX,Bを実行する phpから指示を受け取った後、ソケットを使ってリクエストを送信する 両者間で情報をやり取りできる方法なら何でも良いです。 ..たとえば、コマンドを実行するには ssh を使用し、テキストを転送するには ftp を使用します。

ありがとうございます。あなたの分析は非常に明確です。広告マシンは Linux システム上で実行されるソフトウェアと考えることができます。
プランを変更したい理由は、以前の応答が遅すぎると感じたためです。たとえば、広告マシンの音量を設定したい場合、または広告マシンの音量を取得したい場合、応答速度が非常に遅いです。速度が遅く、ユーザーエクスペリエンスもあまり良くありません。現在、このシステムをやり直す必要がありますが、これには多数の広告マシンとオペレーターが必要です。そのため、より良い方法がないか検討中です


あなたのシステムについてはあまり明確ではありません

"広告マシン"それが何なのか正確にはわかりません。Linux 上で実行されている単なるソフトウェアですか?

これは、広告マシン (A) が PHP サーバー (B) と通信する方法の問題です

もちろん、現在の方法でも機能します。実際、広告マシンはおそらくリアルタイムで応答する必要はありません。現在のメソッドが正常に実行されている場合は、変更する必要はありません

通常、A と B 間の通信には、1 つがサーバーとして使用されます。現在のメソッド、B がサーバー、A がクライアントです

場合...

メカニズムの 1 つは、クライアントが定期的にサーバーにデータを要求することであり、これは処理が簡単です。 1日1回リクエスト、サーバーを変更すると次回から有効になります!

もう 1 つは、クライアントが外部情報を受信する必要があるポートまたはサービスです。このようにして、ソケット情報を受信した後、相手はそれを受信し、復号化して保存することができます。または、クライアントに Web サービスがあります。

1 つ目の方法は、タイマーが長すぎる場合、リアルタイムのパフォーマンスが失われます。
2 つ目の方法は、広告のためです。マシンはルーターの背後にあります。ソケットを確立するにはどうすればよいでしょうか?
QQ のようなチャット ツールはどのように機能しますか?

メカニズムの 1 つは、クライアントが定期的にサーバーにデータを要求することであり、これは処理が簡単です。 1日1回リクエスト、サーバーを変更すると次回から有効になります!

もう 1 つは、クライアントが外部情報を受信する必要があるポートまたはサービスです。このようにして、ソケット情報を受信した後、相手はそれを受信し、復号化して保存することができます。または、クライアントに Web サービスがあります。

通常、データは AJAX を通じてサーバーから定期的に取得されます。

アイデアがあるので、私を特定してください
B/S クライアントは隠しフラッシュを使用します。ユーザーが操作した後、js が操作を取得してフラッシュに通知し、php の後でフラッシュがその通知を受け取り、php サーバーとのソケット通信を確立します。メッセージを処理します。情報はフラッシュに送信され、ソケット通信が閉じられます。フラッシュは php から返されたコンテンツを js に送信し、js はページのコンテンツを更新します。 。 。
このアイデアが何なのかわからないので、アドバイスをお願いします...

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