環境 :
私は、ソケット接続と着信データをリッスンするメインループが明らかにあるDAEMONとして実行するPHP Websocketサーバー(ここsleep(x_number_of_seconds);
)を作成しています。サーバー全体。
接続されたクライアントソケットにデータを送信するには、サーバークラスのスコープ内にいる必要があるため、CRONジョブで外部スクリプトを実行したり、新しいプロセスをフォークしたりすることはできません(推測)。
PHP でこれを達成するための魔法のトリックを知っている人はいますか? :/
いくつかのクレイジーなアイデア:
- で最後のループ実行時間を追跡し、
microtime(true)
それを各ループの現在の時間と比較します。それが希望する X 秒間隔の場合、メソッドを実行します...非常に酔って一貫性のない間隔ループが発生します。 setInterval()
Websocket を介してサーバーと通信するJavaScriptをブラウザーで実行し、メソッドを実行するように指示します...クレイジーなアイデアがどこにあると言いましたか!
私が達成しようとしていることに関する追加情報:
X 秒ごとに動作を更新する NPC を追加したい小さなオンライン ゲーム (RPG のようなもの) を作成しています。
これを達成する他の方法はありますか?何か不足していますか?Node.js でサーバーを書き直す必要がありますか??
助けてくれてありがとう!