webForumDet fria alternativet

online/offline och status

.NETur .NET

7 svar · 390 visningar · startad av greggan

Medlem sedan jan. 2004678 inlägg
Frågan#1

Hej.

Tänkte fixa så att man ska kunna gå in på en användares "profil" och se om han/hon är offline och vad personen gör för tillfället. Jag tänkte på något sätt att man ska spara det personen gör för tillfället i en session, men sen måste ju det in i databasen för att kunna visas på profilen. Än så länge inga problem. Men om nu personen i fråga skulle gå offline, hur ska jag då kunna rensa i databasen så att det inte står att han gör nånting fast han inte gör det. Det är ungefär samma problem jag har med online offline.

Är det rätt sätt att lägga in status i databasen och sedan hämta därifrån? Och hur gör jag för att komma runt mina problem?

Det står stilla... :(

Medlem sedan dec. 19996 522 inlägg
#2

I global.asax har du väll session_on_end där du kan göra vad du vad du vill i detta fall när han timar ut sin session.

Medlem sedan jan. 20012 204 inlägg
#3

Databas, skapa en kolumn med online, förslagsvis 1 = online 0 = offline.

Sidan: Hämta datan och visa, sätt förslagsvis Session("Userid")=id

Loggar in: Uppdatera tabelen i db.

Global.asax. Session_on_end, id i session uppdaterar tabellen till 0.

Medlem sedan maj 2001329 inlägg
#4

Tänk bara på att en person kan ha flera sessioner rullande. Så du måste även ha koll på hur många och räkna ner när de stängs efterhand.

Även om majoriteten av användarna är så snälla att de bara öppnar ett fönster och loggar in en gång så kommer detta att ske. Detta pga att Session_on_end inte inträffar förrän man har timeoutat (30 min som default?). Så om man stänger sitt fönster och loggar in direkt igen så har man två sessioner igång.

Medlem sedan jan. 2004678 inlägg
#5

hmm.. okej.... får försöka pilla lite på det där... kanske kan timeouta session lite tidigare och istället låta sidan uppdatera sig för att hålla igång session... fortfarande svårt att veta vad som kan vara bäst och så..
hade en tanke på att man skulle ha en iframe typ som låg och matade databasen med info frånå session typ en gång i minuten eller nåt... :/

Medlem sedan apr. 2004778 inlägg
#6

Grynet, eftersom en online kolumn sätts till 1 för att man är inloggad så spelar det ingen roll. Det enda som sker är att man fortfarande står som inloggad i listan och 20 minuter efter att man stänger ner fönstret andra gången så blir det session_onend och man "loggas" ut från listan.

Medlem sedan maj 2001329 inlägg
#7

PDahlen: Om andra fönstret är inloggat då första fönstret timar ut så loggas man ut i databasen men andra sessionen är fortfarande inloggad. Där av måste man hålla reda på antalet sessioner.

Angående lägga koden vart så vore det exemplariska stället att lägga den i Application_BeginRequest i global.asax, men om jag minns rätt så fick man inte komma åt sessions variabler därifrån och det kanske till och med var så att man inte ens visste vilken sida man var på i den contexten. Det var ett tag sedan vi försökte göra en sån här grej så jag har glömt varför det inte gick i BeginRequest. Det vi tänkte göra var sedan att lägga ett kall till en function i varje page_load för att säga vad användaren gjorde, men som kanske förstås så la vi ner detta då vi egentligen bara skulle ha det 'för skojs skull'.

Nåja bara lite tankar..hoppas du hittar nån fin lösning

Medlem sedan jan. 2004678 inlägg
#8

jo men det är ju inga problem att få informationen om vad användaren gör att hamna i databasen, det är ju bara lägga i page_load.. men hur ska man kunna få bort det från databasen om användaren vägrar använda logga ut funktionen man skapar och bara stänger rutan istället? =/

får läsa lite om global.asax och se om jag kan lösa det...

135 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)