チャットアプリケーションを作成していて、最初のチャット呼び出しで後続のすべてのAJAX呼び出しの設定を取得したいと考えています。
デフォルトのjQueryAJAX設定を設定しました。
jQ.ajaxSetup({
url : 'chat.php',
contentType: 'application/json'
dataType : 'json',
type : 'post'
});
次に、特定のチャットに接続するためのデータを含むJSONオブジェクトを返すアクションを渡します。
jQ.ajax({
data: {
'action' : 'connect'
},
success: function (data) {
if (data.success) {
// set user ID and chat ID for all subsequent ajax calls
if (data.partner) {
// start fetching data to listen for messages
} else {
// keep checking for partner
}
} else {
// chat connect failed
}
}
});
チャットが作成され、ユーザーがチャットパートナーに接続している場合、0.2秒ごとに次のようにサーバーからデータをフェッチします。
setTimeout(fetchData, 200);
function fetchData(){
jQ.ajax({
data: {
'action' : 'fetch'
},
success: function (data) {
if (data.success) {
// update messages
}
setTimeout(fetchData, 200);
});
}
また、データを投稿してチャットから切断するAJAX関数もあります。基本的に、これらはすべて、最初の「接続」アクションで設定されたものと同じチャットクレデンシャルを持っている必要があります。
これを達成するための最良の方法は何でしょうか?