Symfony检查用户是否仍在线

时间:2017-07-21 06:50:30

标签: php symfony session

我知道在Stackoverflow中多次询问过这个问题,但我实际上并不知道如何让它工作。 所以我在其他线程中发现我可以每5分钟执行一次Ajax调用以获得例子,并在每次调用时更新数据库中的if (ViewState["datAdminDocument"] == null)// if data table id null { datAdminDocument = new DataTable(); //add new column in data table datAdminDocument.Columns.Add("FileBytes", typeof(System.Byte[])); //column for file byte array System.Byte[] is use fro byte array ViewState["datAdminDocument"] = datAdminDocument;// viewstate use for prevent the data in datatable } else { datAdminDocument = ViewState["datAdminDocument"] as DataTable; // if data table is not null then else condition execute } DataRow drow = null;// drow is a null object for datarow drow = datAdminDocument.NewRow(); drow[0] = AdminFileUpload.FileBytes; //file byte array insert in data table row datAdminDocument.Rows.Add(drow); //add row in data table datAdminDocument.AcceptChanges(); //change in data table GridAdminUploadDocument.DataSource = datAdminDocument;//data table bind with gird GridAdminUploadDocument.DataBind(); ViewState["datAdminDocument"] = datAdminDocument; // after that now i want retrive byte array form data table by using for loop for (i = 0; i < datAdminDocument.Rows.Count; i++) //for loop use for retrive byte array from data table column. { File.WriteAllBytes(Server.MapPath("~/AdminDocument/a.jpg"), Encoding.Unicode.GetBytes(datAdminDocument.Rows[i][0].ToString().Trim()); } // a.jpg is a new file name (或其他)列。 但是如何执行这个Ajax调用。我知道如何在每次访问页面时从JS执行它,但这会导致大量请求。我想安排通话。如果可能的话,一段代码将是一个很好的帮助。

我还想过在控制器中创建一个动作,并且每5分钟调用一次这个动作。但我又不知道如何安排行动电话。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

var _lasttimeseen = setInterval(lasttimeseen, 30000);

function lasttimeseen() {
    $.ajax({
        url: "{{ path('route_to_update_lasttimeseen') }}",
        type: "POST",
        data: {},
        success: function (msg) {}
        ...
        })
}

这样的事情对你有帮助吗?