2013-06-15 14 views
6

私は現在Web Socketsに入っており、オンラインWebsocket Pusher(それが気に入らなかった)とScribble(驚くが、ダウンタイムはあまりにも頻繁に使用されているので)を使いこなしています。正確にPHP Websocket Serverを設定する必要はありますか?

私のlocalhostにこのチュートリアルhttp://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/をフォローしました。素晴らしいです!

質問したいのは、上記のファイルからserver.phpをセットアップして、オンラインのWebホスト/共有サーバー上でWebSocketサーバーとして実行するにはどうすればよいですか?

または私はVPSを取得する必要があります(もしそうなら、私は本当に前にVPSを使ったことがないよう、どちらがあなたがお勧めしますとどのようにそこに私は、セットアップのWebSocketサーバーできない!)

は非常にありがとう私の質問を読んだり、答えを出すために多くのことがあった私はここでソケットに関する他の質問/答えをすべて読んだが、まだ私の上記の質問への答えを見つけることができなかった。うまくいけば私はそれをここに見つける!

答えて

4

これは扱いにくいです。

server.phpスクリプトを実行する必要があります。終了する必要はありません。あなたの共有サーバーへのSSHアクセスを持っている場合は、スクリーンショットに彼らは同じようにそれを実行し、それがnohupのようなもの使用してバックグラウンドタスクとして実行させることができます:SSH接続を使用して(これを起動した後

$ nohup php server.php 
nohup: ignoring input and appending output to `nohup.out' 

を)、あなたは終了して、プロセスは動作し続けます。スクリプトが印刷するものはすべてnohup.outに保存されます。これはいつでも読むことができます。

SSHアクセス権がなく、実際にPHPスクリプトを実行する唯一の方法は、ページリクエストの結果としてApache経由である場合、ブラウザを使用してそのページに移動し、ブラウザ。しかし、ある日か他の時間があり、あなたとApacheの間の接続が終了し、実質的にserver.phpスクリプトの実行が停止します。

これまでのケースでは、多くの共有ホストがスクリプトを無期限に実行することを許可していません。あなたは、この行がserver.phpでありますことに気づくでしょう:

set_time_limit(0); 

これは時間制限がありませんことをPHPに指示します。ホストがPHPをsafe mode(多くの場合)で実行した場合、set_time_limitを使用することはできません。制限時間はおそらく30秒以内です。

はい、VPSがおそらく最も良い方法でしょう。さて、私は自分自身を所有していないし、良い/悪い価格は何か分からないが、私はHostGatorがうまくいくと思うだろう。

+0

完璧な答え、まさに私が必要なもの!ありがとうございました:) –

+0

しかし、サーバーアプリケーションが関係している場合、コミュニティはPHPにあまりないことに注意してください。とにかくVPSを購入する場合は、[socket.io](http://socket.io/)(Node.js)または[Autobahn](http://autobahn.ws/)をご覧ください。 )(Python)。これらは、うまく動作することが証明されている統合ソリューション(サーバー側とクライアント側のマッチングライブラリ)です。もちろん、最小限のPHPサーバから始めて、プロトコルと「低レベル」の側面を理解することができます。 – eepp

+0

私が知っている最高のPHPソリューションは[Ratchet](http://socketo.me)です。他の言語のための多くの自己ホスト型ソリューションがあります([realtime web tech guide](http://www.leggetter.co.uk/real-time-web-technologies-guide)参照)。一般的にPHPの場合は、ホストされたソリューションの使用をお勧めします。 – leggetter

関連する問題