0

Windows AzureのコマンドラインからPHPアプリケーションを簡単に実行する方法はありますか?

(Azure上に)標準のWebアプリケーションがあり、WebSocketを使用して通信したいと考えています。そのため、Azureで常にWebSocketサーバーを実行する必要があります。

あるポートでリッスンし、JavaScriptで送信されたWebSocketからのメッセージを処理するために、「常に」実行する必要があるWrenchプロジェクトを使用しています。

繰り返しになりますが、Azureで「永続的な」 PHPアプリケーションを簡単に実行できるでしょうか。

前もって感謝します。

4

3 に答える 3

2

Sandrinoの答えは問題ありませんが、私はこの種のことを行うためにProgramEntryPointを好みます。バックグラウンドタスクの問題は、(自分で何かを構築しない限り)何もそれを監視していないことです。を使用するProgramEntryPointと、Windows Azureはプロセスを監視し、何らかの理由でプロセスが終了した場合、ロールインスタンスが再起動されます。

編集

Sandrinoは、実行しているのはPHPプログラムだけではないと指摘しています。(Webサイトもあります。)その場合は、でphp.exeを起動することをお勧めRun()WebRole.csます。Process.Startそれからそれを実行し.WaitForExit()ます。そうすれば、プロセスが終了すると、ロール自体がから終了しRun()、ロールインスタンスが再起動します。例については、 http://blog.smarx.com/posts/using-other-web-servers-on-windows-azureを参照してください。

于 2012-08-16T11:07:42.977 に答える
0

PHPスクリプトをコマンドラインアプリケーションとして実行するには、PHP CLI(コマンドラインインターフェイス)を使用する必要があります。

php.exe -f "yourWebSocketServce.php" -- -arg1 -arg2 -arg3

ここで、これをWindows Azureで実行するには、このコマンドを実行するスタートアップタスクを定義する必要があります。デフォルトのタスクタイプは単純であることがわかります。これは、タスクが終了するまでロールの起動がブロックされることを意味します。ただし、PHPでWebSocketを実行するとブロックプロセスになるため、タイプをバックグラウンドに変更する必要があります(これにより、WebSocketサーバーの実行中にインスタンスが起動し続けるようになります)。

于 2012-08-16T11:04:03.557 に答える
0

これがAzure上のWebSocketサービスです。-ライブXSockets.NET

始めるのに簡単な方法であるhttp://live.xsockets.netを見てください。ただし、これは「サーバー側」で何をしようとしているかによって異なります。私が言及するこのサービスは、「メッセージ」ディスパッチャーとして、変更などで「クライアント」を通知するために使用できます。つまり、「通常の」Webアプリを後押しする方法です。

于 2012-08-16T18:25:59.760 に答える