私は、Bukkit を使用する 2 つの Minecraft サーバーのプロジェクトに取り組んできました。サーバーの世界の動的マップと、サーバーでイベントが発生すると更新されるリアルタイムのイベント更新システムを含む Web ページを作成しようとして<div>
います。私のシステムがどのように機能するかを簡単に説明すると、Minecraft サーバーは UDP パケットを介して同じネットワークを介して Node.js Web サーバーとイベントを通信し、Node.js Web サーバーはこれらのパケットを使用して、イベント情報を含む JavaScript オブジェクトを構築します。オブジェクトは保存され、ページが要求されるたびに Jade に渡されます。Jade がテンプレート作成を担当します。
私がやりたいことは、このページを動的に更新することです。これにより、ユーザーはイベントのリストを更新するためにページ全体を更新する必要がなくなります。私が実装しようとしているのは Facebook のティッカーのようなもので、Facebook の友人がステータスの投稿、投稿へのコメント、投稿への「いいね」などを行うたびに更新されます。
SO に関するこの質問を読んで、PHP スクリプトでロング ポーリングを使用する必要があると結論付けましたが、ほぼ完全に Node.js で記述された Web サーバーに PHP を統合する方法がわかりません。どうすればこれを行うことができますか?
編集:
クライアント側のコードで問題が発生しました。
これはスクリプト ブロックです。
script(src='/scripts/jadeTemplate.js')
script(src='/socket.io/socket.io.js')
script(type='text/javascript')
var socket = io.connect();
socket.on('obj', function(obj) {
var newsItem = document.createElement("item");
jade.render(newsItem, 'objTemplate', { object: obj });
$('#newsfeed').prepend(newsItem);
console.log(obj);
alert(obj);
});
これはobjTemplate.jade
次のとおりです。
p #{object}
// That's it.
alert()
とをスクリプトの先頭に配置すると、アラートとログが記録されますが、下部では実行されません (したがって、 、、または prependconsole.log()
の作成に問題があると思います。newsItem
jade.render()
さらにスニペットやファイルを提供する必要がある場合は、お知らせください。いじくり回し中なので自力で解決するかもしれませんが、更新しない限りまだ助けが必要です。:)