הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   הצגת משתמשים ואורחים מחוברים (https://hosts.co.il/forums/showthread.php?t=64240)

Dum 18-06-08 22:37

הצגת משתמשים ואורחים מחוברים
 
היי, חיפשתי מצאתי כמה הסברים אבל היה חסר משהו בכולם...
הרעיון איך להעביר ולעקוב אחרי מי שמחובר ברור לי אבל אני מבין שצריך להיות משהו שידע מתי המשתמש התנתק (מתי הזמן של הsession שלו נגמר) ואז להוריד אותו...
עכשיו אני מבין שזה משהו על השרת שצריך לרוץ... איך עושים את זה?

AlmogBaku 18-06-08 22:45

האפשרות הכי טובה:
AJAX-


אג'קס, מרענן כל 5 ש' ומזין ל DB שהוא מחובר.

אם משתמש לא כתב שהוא מחובר יותר מעשרים שניות, הוא מנותק.

Dum 18-06-08 22:49

ציטוט:

נכתב במקור על ידי Baku (פרסם 643004)
האפשרות הכי טובה:
AJAX-


אג'קס, מרענן כל 5 ש' ומזין ל DB שהוא מחובר.

אם משתמש לא כתב שהוא מחובר יותר מעשרים שניות, הוא מנותק.

בלי AJAX הדרך הפשוטה והישנה... אני בטוח שיש כזאת...
אלא אם כן מישהו יוכל לתת לי את הקוד המדויק לעשות את זה עם AJAX :)

Dvirs.Net 19-06-08 00:06

השיטה הישנה, הפופולארית היא מאוד פשוטה.
חוסכת התחברויות ועדכונים למסד הנתונים - פחות עומס עליו.

אתה עובד רק עם SESSION דו מימדי.
אתה מגדיר לכל משתמש SESSION עם ערכים של נתונים הרצויים לך (IP, באיזה עמוד נמצא וכו').
בנוסף, אתה מגדיר ערך אחד שהוא פעילות אחרונה של המשתמש.

בזמן שאתה מעדכן את הנתונים של משתמש מסוים, אתה גם בודק מבין כל ה-SESSIONS אם יש SESSION שזמן פעילות אחרון גדול מ-X דקות ואם כן אתה מסיר אותו וכך אתה בעצם מוחק משתמשים שאינם פעילים במשך X דקות.

מאוד פשוט.
בהצלחה!

daMn 19-06-08 11:08

אם (פעילות אחרונה-זמן נוכחי) > זמן קבוע(בדר"כ עושים 15 דקות) המשתמש לא מחובר.

AlmogBaku 19-06-08 11:20

רק שזה פחות "זמן אמת"

DavidBD 19-06-08 12:25

ציטוט:

נכתב במקור על ידי Dvirs.Net (פרסם 643033)
השיטה הישנה, הפופולארית היא מאוד פשוטה.
חוסכת התחברויות ועדכונים למסד הנתונים - פחות עומס עליו.

אתה עובד רק עם SESSION דו מימדי.
אתה מגדיר לכל משתמש SESSION עם ערכים של נתונים הרצויים לך (IP, באיזה עמוד נמצא וכו').
בנוסף, אתה מגדיר ערך אחד שהוא פעילות אחרונה של המשתמש.

בזמן שאתה מעדכן את הנתונים של משתמש מסוים, אתה גם בודק מבין כל ה-SESSIONS אם יש SESSION שזמן פעילות אחרון גדול מ-X דקות ואם כן אתה מסיר אותו וכך אתה בעצם מוחק משתמשים שאינם פעילים במשך X דקות.

מאוד פשוט.
בהצלחה!

איך בלי מסד נתונים אתה מעביר את הSESSION ממשתמש אחד לשני?
זה קיים בASP בעזרת Application אם אני לא טועה, אך בPHP לא.

Elad-A 19-06-08 13:11

הוא מתכוון למערכת סיישנים שאתה יוצר בעצמך...
כמו למשל במערכת פורומים של הוסטס..

Dum 19-06-08 21:31

האמת התכוונתי כמו שיש בASP.NET מה שאני מכיר...
אבל פסדר תודה כבר הסתדרתי, יצרתי משהו שמבוסס DB...

Eran-s 20-06-08 19:36

לא יודע אם עשית ככה, אבל ניתן לך את הדרך שלי.
יוצרים טבלה, נקרא לה לצורך העניין "OnlineUsers",
בין המידע שתשים בה, תשים זמן גלישה אחרון.
ואז כל מי שנכנס לדף והוא לא המשתמש הזה, יימחק מהטבלה הזו במידה וזמן החיבור עבר.
וכל גלישה של משתמש מסוים זה יעדכן/יוסיף לפי הצורך לטבלה הזו את המידע.


כל הזמנים הם GMT +2. הזמן כעת הוא 21:15.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ