Playframework 使用Comet和Play框架检测连接关闭
我使用icm iframe下面的函数来运行一个很长的进程(系统查找重复记录,这只是一个读取操作) 但是,如果用户拥有所需的记录并离开页面,则该过程将继续。发生这种情况时,是否有方法检测并终止流程 我希望调用Playframework 使用Comet和Play框架检测连接关闭,playframework,playframework-2.0,comet,Playframework,Playframework 2.0,Comet,我使用icm iframe下面的函数来运行一个很长的进程(系统查找重复记录,这只是一个读取操作) 但是,如果用户拥有所需的记录并离开页面,则该过程将继续。发生这种情况时,是否有方法检测并终止流程 我希望调用public void onDisconnected(F.Callback0 Callback0),但情况似乎并非如此 public static Result findDuplicatesActor(){ Comet comet = new Comet("parent.cometMe
public void onDisconnected(F.Callback0 Callback0)
,但情况似乎并非如此
public static Result findDuplicatesActor(){
Comet comet = new Comet("parent.cometMessage") {
public void onConnected() {
int totalRecords = User.find.findRowCount();
int processed = 0;
int progress;
for(User user : User.find.all()){
progress = Math.round(((float) processed / (float) totalRecords * 100));
sendMessage("{\"progress\":" + progress + ",\"result\":\"OK\"}");
Logger.info("Progress on duplicate search: " + progress);
processed++;
}
sendMessage("{\"progress\":100,\"result\":\"OK\"}");
close();
}
@Override
public void close() {
Logger.info("Connection closed!");
super.close();
}
@Override
public void onDisconnected(F.Callback0 callback0) {
Logger.info("Connection disconnected!");
super.onDisconnected(callback0);
}
};
return ok(comet);
}