1.
私はラチェットソケットを使用しています。私は新しいサーバー接続 を確立しましたが、サーバーの実行を停止したいとします。このシナリオでは、私は IP(ホスト名)とポートを持っています。どうすればそれを止めることができますか?
ラチェットサーバは、ターミナルウィンドウまたは画面でPHPスクリプトとして実行しているとします。 例:php push-server.php
スクリプトの実行を停止すると、サーバーは停止します。
2.
それは決して終わらないサーバー接続を作成することは可能ですか?
はい、PHPスクリプトが端末から機能しなくなった場合は、手動で再起動する必要があります。ラチェットが推奨するSupervisor(A Process Control System)のようなプログラムを使用する方が良いです。
詳細はチェックこのリンクをhttp://supervisord.org/installing.html
supervisordサービスは、PHPスクリプトを監視し、それが本番環境のために適しているクラッシュした場合、自動的にそれを再起動します。
3.
私は、サーバー接続、初日のデータ出力は、DBから 完璧です、しかし、「接続は外部ホストによって を閉じている」として、二日目に、エラーが発生したとします。しかし、私はそのポートに接続することができます。
これは非常に一般的なことですが、私もそれに気付きました。これは通常、サーバーの負荷が高いときやタイムアウトするときに発生します。このメッセージが表示されたら、JavaScriptがこのメッセージをチェックし、新しい接続を再開する必要があります。また、ランダムタイマーの後に再試行することもできます。
編集
またラチェット\サーバー\ IoServerための__construct方法は、第三1がオプションであることそのうち3つのベビーカーが必要です。最初と2番目はMessageComponentInterfaceとServerInterfaceのオブジェクトである必要があります。
public function __construct(MessageComponentInterface $app, ServerInterface $socket, LoopInterface $loop = null) {
IoServer
をインスタンス化する方法が間違っているようです。
1)私はフレームワークを使用しており、ポートへのサーバー接続を開始するアクションを開始しました。だから私は、サーバー接続を開始するためにターミナルを使用していません。 PHPとのサーバー接続を停止する他の方法はありますか? 2)私たちはソケットサービスを使用して、DBとサーバー間のデータをモバイルAppsに送信します。このためにJavascriptを使用していません。Frontendには何も表示されません。私は静的なデータを印刷する場合、それは数日後でも正常に返されます。しかし、DBからMysqlを使用しているデータは接続を閉じます –
私はあなたを助けるためにもっとコードを見なければならないかもしれません。また、あなたがこのコードを実行しているターミナルでスクリプトを実行していない場合は?: '' '$ server-> run();' ''。 WebApp/Frameworkからポート6666に入ってくる着信メッセージをリッスンするスクリプトを用意する必要があります。 – arithran
Nope。コードには問題はありません。問題はタイムアウトだと思います。タイムアウトは、MySQLまたはソケットにある可能性があります。私は把握することができません。 –