-1

Webサーバーと通信するJavaでアプリケーションを作成する必要があります。PHPを使用してそれを行う方法は知っていますが、これではうまくいかないのではないかと思います。

これが私の状況です。複数のクライアントがあり、そのうちの1つがサーバーに特定のメッセージを送信する場合(これまでのところ、PHPでは問題ありません)、接続されている他のすべてのクライアントに特定のメッセージを送信する必要があります。問題は、PHPのサーバーソケットに関する情報がほとんど見つからなかったため、これが適切な方法ではないと思われたことです。今までは有料ホスティング(x10premium)を使ってサーバーをホストしていたので、これでやろうと思っていたのですが、PHPでも可能かどうかはわかりません。現在、各クライアントに定期的にサーバーに他のクライアントからメッセージを受信したかどうかを確認してもらいますが、この解決策は好きではありません...誰かが私を正しい方向に向けてくれることを願っています。そのようなことをするために使用されるRubyや他の言語についてはあまり知りませんが、

前もって感謝します

編集:言及するのを忘れて、サーバー(現在はPHP)もMySQLテーブルと通信します。それが重要な場合。

4

1 に答える 1

1

これは、PHPソケットサーバー/クライアントの良い例です:http: //tech.navarr.me/2010/07/how-to-create-a-socket-server-in-php.html

JAVAの場合と同じように行うことができますが、PHPはマルチスレッドまたはマルチプロセッシングをサポートしていないため、10台のクライアントがサーバーに一度に接続すると、それらを1つずつ処理するため、最終的に1つは他の9つを待つ必要があります。終了-すべて、データベース、接続のオーバーヘッド。

たとえば、JAVAまたはPythonでそれを行う場合、DBとネットワークの通信オーバーヘッドが同時に処理されるように、各要求を別々のスレッドで処理できます。

Pythonには、ソケットサーバーコンポーネントと使いやすいmysqlコンポーネントが組み込まれているため、スレッド化をまったく理解していなくても、これを簡単に実現できます。

Pythonソケットサーバーについては、こちらをご覧ください。

http://docs.python.org/library/socketserver.html

基本的には、新しいクライアント接続ごとに実行される関数を定義し、サーバーに指示するだけです。サーバーが停止するserve_forever()まで、サーバーは必要な処理を実行します。

于 2012-09-19T22:37:01.767 に答える