0

そのままではほとんど理解できない質問についてのガイダンスを探しています。readfile('stories/'.$sessionid.'.txt');PHPでロードされた.txtファイルのコンテンツがあります。どのユーザーも POST を介して .txt ファイルにテキストを追加できます。そのページを開いている他のユーザーに、最近のファイルの変更が通知 (および更新) されるようにしたいと思いますが、更新を行ったユーザーは、彼自身の更新についての通知。

関連情報を見つけるのに苦労しています。何を検索すればよいのか、あるいはその問題へのアプローチ方法 (jQuery、AJAX、PHP など) がよくわからないためです。私は何かを読みましfilemtimeたが、この場合にそれを適用する方法がわかりません。私は主にフロントエンドを扱っているので、この種の課題についてはあまり経験がありません。私は一種の解決策を見つけましたが、ファイルの変更を常に警告し、サーバーに負担をかける可能性があります(最悪の場合)と思いますか?

var previous = "";

setInterval(function() {
    var ajax = new XMLHttpRequest();
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
           if (ajax.responseText != previous) {
              alert("file changed!");
              previous = ajax.responseText;
            }
        }
    };
    ajax.open("POST", "stories/<?php echo($sessionid) ?>.txt", true); //Use POST to avoid caching
    ajax.send();
}, 1000);

このコードを作業して開発する方法はありますか、またはどこから調べて作業を開始する必要がありますか? 今までこういうことをしたことがないので、まったくわかりません。検索して使用できる関連するキーワード、方法、またはチュートリアルへのポインターは大歓迎です!

4

1 に答える 1

0

複数のユーザーがファイルをリアルタイムで編集できるようにする方法を見つけている場合は、Web ソケットを使用できます。socket.ioは、サーバーと Web ソケットを介してサーバーに接続されているすべてのクライアントとの間で双方向にメッセージを送信できるようにするライブラリです。

あなたの場合、txt ファイルに編集が加えられると、接続されているすべてのクライアントにメッセージをブロードキャストして、変更について知らせることができます。

と同じくらい簡単でsocket.broadcast.emit('File Edited')、ソケット自体を介して新しいコンテンツを送信するか、このソケット メッセージの受信時に ajax クエリを実行できます。

于 2015-01-26T03:57:23.867 に答える