nazaninam
سه شنبه 14 شهریور 1385, 09:40 صبح
سلام من یک صفحه و فقط یک صفحه برای کاربران ساختم که توی اون صفحه ابتدا نام کاربریشون رو میزنن و یک تکس باکس براشون باز میشه و میتونن به ادمین سایت بصورت آنلاین پیام بدن و ادمین کسانی که وارد این صفحه شدن رو آنلاین میبینه و بقیه رو آفلان
در ضمن بگم تمام گفتگو ها در دیتابیس ثبت میشه چون همش باید ذخیره شه...
وقتی کاربر از صفحه logout میکنه فلگی داخل جدول مربوطه داخل دیتابیس false میشه
خوب فرض کردم که کاربر بدون logout پنجررو ببنده حالا دیگه فلگ false نمیشه و به همون صورت باقی میمونه و ادمین فکر میکنه که طرف هنوز آنلاینه باسه همین از cache بصورت زیر استفاده کردم و بعضی وقتا مخصوصا دفعه اول کار میکنه دفعه بعد که کاربران دیگه میان کار نمیکنه:
در هنگام لود صفحه ساب روتین زیر رو صدا کردم
Public Sub loadCaching()
Session("User") = user_id.Text
Session("Lastvisit") = DateTime.Now
در اینجا هم اطلاعات رو وارد db کردم
Dim CloseUser As System.Web.Caching.CacheItemRemovedCallback
CloseUser = AddressOf Pages_CloseUser
Cache.Add("UserOnlineList", Session("User").ToString, Nothing, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, CloseUser)
End Sub
در سشن Session("User") نام کاربری طرف رو ذخیره کردم ...
و کد remove call back هم اینه :
Private Sub Pages_CloseUser(ByVal key As String, ByVal Value As Object, ByVal reason As CacheItemRemovedReason)
If key = "UserOnlineList" Then
If CType(Session("Lastvisit"), DateTime).Minute - minut < DateTime.Now.Minute - minut Then
Call delete_user()
End If
Dim CloseUser As System.Web.Caching.CacheItemRemovedCallback
CloseUser = AddressOf Pages_CloseUser
Cache.Add("UserOnlineList", Session("User").ToString, Nothing, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, CloseUser)
End If
End Sub
من نمیدونم مشکل این کد کجاست میشه راهنماییم کنیم...
در ضمن بگم تمام گفتگو ها در دیتابیس ثبت میشه چون همش باید ذخیره شه...
وقتی کاربر از صفحه logout میکنه فلگی داخل جدول مربوطه داخل دیتابیس false میشه
خوب فرض کردم که کاربر بدون logout پنجررو ببنده حالا دیگه فلگ false نمیشه و به همون صورت باقی میمونه و ادمین فکر میکنه که طرف هنوز آنلاینه باسه همین از cache بصورت زیر استفاده کردم و بعضی وقتا مخصوصا دفعه اول کار میکنه دفعه بعد که کاربران دیگه میان کار نمیکنه:
در هنگام لود صفحه ساب روتین زیر رو صدا کردم
Public Sub loadCaching()
Session("User") = user_id.Text
Session("Lastvisit") = DateTime.Now
در اینجا هم اطلاعات رو وارد db کردم
Dim CloseUser As System.Web.Caching.CacheItemRemovedCallback
CloseUser = AddressOf Pages_CloseUser
Cache.Add("UserOnlineList", Session("User").ToString, Nothing, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, CloseUser)
End Sub
در سشن Session("User") نام کاربری طرف رو ذخیره کردم ...
و کد remove call back هم اینه :
Private Sub Pages_CloseUser(ByVal key As String, ByVal Value As Object, ByVal reason As CacheItemRemovedReason)
If key = "UserOnlineList" Then
If CType(Session("Lastvisit"), DateTime).Minute - minut < DateTime.Now.Minute - minut Then
Call delete_user()
End If
Dim CloseUser As System.Web.Caching.CacheItemRemovedCallback
CloseUser = AddressOf Pages_CloseUser
Cache.Add("UserOnlineList", Session("User").ToString, Nothing, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, CloseUser)
End If
End Sub
من نمیدونم مشکل این کد کجاست میشه راهنماییم کنیم...