我已经在互联网上搜索了几天,以找到一个优化的解决方案,用于在骨干网中进行实时集合。想想一个虚拟房间(例如聊天室),我想显示那个房间里的人。现在我每 2 秒获取一次集合并将新用户(在我的情况下为播放器)添加到列表视图中,它正在工作,但我担心流量和所有那些无用的 ajax 请求什么都不返回。
这是我的主干脚本:
App.players = new App.Collections.Players;
waitingUserList = new App.Views.WaitingPlayers({ collection: App.players });
setInterval(function() {
App.players.fetch({
success: function(collection) {
collection.each(function(player) {
if (player.get('added') == 0) {
player.set('added', 1);
player.save();
}
});
},
});
}, 2000);
$('div.waiting-list').append(waitingUserList.el);
和我的 php 代码(我正在使用 laravel 3):
public function get_index($gid)
{
$players = Game::find($gid)->players()->get();
if (!empty($players)) {
return Response::eloquent($players);
} else {
return false;
}
}
有什么方法可以在collection.fetch()
调用时等到一些新记录添加到数据库中,然后服务器响应 ajax 请求。
PS我不想使用html5 websockets
PSS这是我的第一次骨干体验,所以如果我在某个地方弄错了或者说了一些愚蠢的话,请原谅我:D
提前致谢