Entwickler-Ecke

Wünsche, Anregungen & Kritik - Benachrichtigung erst wegschicken wenn ausgeloggt


Leuchtturm - Mi 27.12.06 12:50
Titel: Benachrichtigung erst wegschicken wenn ausgeloggt
Hi,
was haltet ihr von der Idee die Antwortbenachrichtigung erst wegzuschicken wenn man sich ausloggt und jene Beiträge noch nicht angekuckt hat :?:
Leuchtturm


jakobwenzel - Mi 27.12.06 12:53

Was meinst du mit ausloggt? Den Session-Timeout oder nen Klick auf den Logout-Knopf?


GTA-Place - Mi 27.12.06 12:54

Wenn du meinst "sobald man den Browser schließt", dann muss ich dir sagen, dass das nicht geht.


Leuchtturm - Mi 27.12.06 12:55

Ich meinte wenn der User nicht mehr bei "Wer ist online?" angezeigt wird


GTA-Place - Mi 27.12.06 12:57

Das ist dann, je nach Servereinstellungen, 5 Minuten nach dem Verlassen. Würde natürlich gehen-


Leuchtturm - Mi 27.12.06 13:00

Ich finde diese Funktion eigentlich praktisch, weil mein Postfach manchmal etwas voll ist mit Nachrichten von Antworten die ich schon lange gelesen habe


rey003 - Mi 27.12.06 13:11

Also ich finde die Idee nicht schlecht! Man sollte aber in den Einstellungen selber wählen können, ob man das so will oder doch lieber nicht!

@Leuchtturm
Ich war grade auf deiner Internetseite! Jetzt weiß ich wen ich mal fragen kann, wenn mit meinem Mindstorms was nicht stimmt :wink:


Leuchtturm - Mi 27.12.06 13:16

Zitat:
@Leuchtturm
Ich war grade auf deiner Internetseite! Jetzt weiß ich wen ich mal fragen kann, wenn mit meinem Mindstorms was nicht stimmt :wink:

Scheint ja starkes Interresse an meiner Website zu bestehen :shock:
Danke


Martok - Mi 27.12.06 17:45

user profile iconLeuchtturm hat folgendes geschrieben:
Ich finde diese Funktion eigentlich praktisch, weil mein Postfach manchmal etwas voll ist mit Nachrichten von Antworten die ich schon lange gelesen habe

Stimmt. So ein Feature wäre auch für PMs nicht schlecht!


GTA-Place - Mi 27.12.06 17:47

PNs erst bekommen, wenn man ausgeloggt ist o_O?


Martok - Mi 27.12.06 17:49

Nein. Keine Mails bekommen, wenn man noch eingeloggt ist.


jaenicke - Mi 27.12.06 18:19

Hmm, ist bei mir nicht so schlimm, weil das automatisch in einen DF-Ordner eingeordnet wird, aber die Idee ist nicht schlecht. Allerdings ist die Frage, wie das funktionieren sollte. Denn ich meine, dazu müsste ja auf das Ausloggen reagiert werden. Das ist aber IMHO so nicht möglich.
Andererseits werden ja nach einer gewissen Zeit die Session-IDs gelöscht, insofern... Aber darüber weiß ich nicht genug, wie das geht.

Grundsätzlich finde ich die Idee jedenfalls gut. Denn auch ich ärgere mich manchmal darüber, dass ich nicht mehr weiß, welche Mails ich noch anklicken muss und welche nicht.
Hmm, ich könnte ja ein BHO schreiben, das automatisch die entsprechenden Mails aus meinem Posteingang löscht, sobald ich die Seite im Browser anklicke... :lol:


Leuchtturm - Mi 27.12.06 18:20

Was ist ein BHO :?:


jaenicke - Mi 27.12.06 18:22

Ein Browser Helper Object, damit klinkst du dich in den IE ein und reagierst bspw. auf das Laden von Seiten. Oder änderst eine URL vor dem Laden, etc.


GTA-Place - Mi 27.12.06 18:22

Ein BrowserHelperObject oder auf -deutsch- ein Plugin ;-)


EDIT: GRML, du bist zu schnell!


Leuchtturm - Mi 27.12.06 18:24

Achso, danke


jaenicke - Mi 27.12.06 18:26

user profile iconGTA-Place hat folgendes geschrieben:
EDIT: GRML, du bist zu schnell!

Und heute sogar ohne Editieren ;-)


Regan - Mi 27.12.06 18:48

user profile iconjaenicke hat folgendes geschrieben:
Hmm, ist bei mir nicht so schlimm, weil das automatisch in einen DF-Ordner eingeordnet wird, aber die Idee ist nicht schlecht. Allerdings ist die Frage, wie das funktionieren sollte.

Ich denke dafür haben wir doch einen Chefentwickler oder? Aber der is ja grad im Urlaub.
Mir gefällt die Idee auch sehr gut.


Heiko - Sa 30.12.06 11:31

Das dürfte nicht so ohne weiteres gehen. Denn wer in den letzten 5 Minuten online war, ist eine ganz einfache SQL-Abfrage:


Quelltext
1:
2:
3:
4:
5:
6:
  $sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
    FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
    WHERE u.user_id = s.session_user_id
      AND s.session_time >= ".( time() - 300 ) . "
      $user_forum_sql
    ORDER BY u.username ASC, s.session_ip ASC";


GTA-Place - Sa 30.12.06 11:39

Ist doch kein Prob:

Quelltext
1:
2:
wenn user_noch_online dann
  sende_keine_benachrichtigung

wobei user_noch_online die selbe Abfrage ist, wie die von Wer ist online?. Bzw. prüfen ob der User nicht online ist.


Heiko - Sa 30.12.06 11:40

Das nicht senden ist nicht das Problem, aber das senden nach dem ausloggen um das es hier ja geht...


GTA-Place - Sa 30.12.06 15:03

Wenn du online bist, siehst du ja eigentlich alle neuen Beiträge, d.h. während du eingeloggt bist, muss dir keine Benachrichtigung geschickt werden. Wenn du dann ausgeloggt bist - und es wird ein neuer Beitrag geschrieben - erst dann muss dir ja eine entsprechende Nachricht geschickt werden.

Und falls es doch so komplex sein soll, dass man nach dem Ausloggen über Beiträge - die man während man eingeloggt war nicht gesehen hat - informiert werden will, dann muss so eine Art Warteliste her, die regelmäßig "geleert" wird. In dieser stehen dann Nachrichten für nicht gesehene Beiträge und werden dann immer erst weggeschickt, wenn der User offline ist.


Heiko - Sa 30.12.06 15:23

user profile iconGTA-Place hat folgendes geschrieben:
Wenn du online bist, siehst du ja eigentlich alle neuen Beiträge, d.h. während du eingeloggt bist, muss dir keine Benachrichtigung geschickt werden. Wenn du dann ausgeloggt bist - und es wird ein neuer Beitrag geschrieben - erst dann muss dir ja eine entsprechende Nachricht geschickt werden.

Ne, das haut auch nicht ganz hin. Wäre ja sonst zu einfach, denn manchmal übersieht man neue Beiträge rechts (z.B. wenn gerade viel gepostet wird und du gerade mit einem großem Beitrag beschäftigt bist) ;).

user profile iconGTA-Place hat folgendes geschrieben:
Und falls es doch so komplex sein soll, dass man nach dem Ausloggen über Beiträge - die man während man eingeloggt war nicht gesehen hat - informiert werden will, dann muss so eine Art Warteliste her, die regelmäßig "geleert" wird. In dieser stehen dann Nachrichten für nicht gesehene Beiträge und werden dann immer erst weggeschickt, wenn der User offline ist.

Bei so einem großem Forum, wie hier, dürfte das gehen, aber wenn du z.B. in der Nacht aktiv bist, dann dauert das ne Weile, denn die Warteliste würde ja nur überprüft werden, wenn irgendeiner eine Seite aufruft (und in der Nacht ist nicht immer einer online ;) ). Und ein Endlosscript geht glaube ich nicht (ich glaube, es gibt ne maximale Scriptzeit vom Apache aus).


GTA-Place - Sa 30.12.06 15:25

Dann gibt es aber noch Cronjobs. Kannste ein Script automatisch alle z.B. 10 Minuten aufrufen lassen.

(Natürlich immer eine Frage des Traffics :lol:)


Heiko - Sa 30.12.06 16:43

user profile iconGTA-Place hat folgendes geschrieben:
Dann gibt es aber noch Cronjobs.

Wenn Tino genug Recht5e auf dem Server hat, wäre das die beste Lösung... .

user profile iconGTA-Place hat folgendes geschrieben:
(Natürlich immer eine Frage des Traffics :lol:)

Wieso Traffic? Durch das Feature wird doch eher der Traffic gesenkt... .


GTA-Place - Sa 30.12.06 16:49

user profile iconHeiko hat folgendes geschrieben:
user profile iconGTA-Place hat folgendes geschrieben:
Dann gibt es aber noch Cronjobs.

Wenn Tino genug Recht5e auf dem Server hat, wäre das die beste Lösung... .

Die hat er ;-)

user profile iconHeiko hat folgendes geschrieben:
user profile iconGTA-Place hat folgendes geschrieben:
(Natürlich immer eine Frage des Traffics :lol:)

Wieso Traffic? Durch das Feature wird doch eher der Traffic gesenkt... .

Alle 10 Minuten prüfen ob noch Nachrichten verschickt werden müssen, ist ja auch nicht gerade ohne Traffic.


raziel - Sa 30.12.06 17:14

user profile iconGTA-Place hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
user profile iconGTA-Place hat folgendes geschrieben:
(Natürlich immer eine Frage des Traffics :lol:)

Wieso Traffic? Durch das Feature wird doch eher der Traffic gesenkt... .

Alle 10 Minuten prüfen ob noch Nachrichten verschickt werden müssen, ist ja auch nicht gerade ohne Traffic.

Solang der Cronjob vom EE-Server gestartet wird und nichts zu verschicken ist, gibts auch kein Traffic, der verbraucht werden könnte...


Heiko - Sa 30.12.06 17:28

user profile iconGTA-Place hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
user profile iconGTA-Place hat folgendes geschrieben:
(Natürlich immer eine Frage des Traffics :lol:)

Wieso Traffic? Durch das Feature wird doch eher der Traffic gesenkt... .

Alle 10 Minuten prüfen ob noch Nachrichten verschickt werden müssen, ist ja auch nicht gerade ohne Traffic.


Wie bereits raziel sagte, ist wird keine Traffic verursacht. Was du wahrscheinlich meinst ist die zusätzliche Serverlast durch den Timer etc. Die dürfte aber unbedeutend sein, denn wenn man bei Windows sieht, wie wenig ein Timerverbraucht (mitm normalen Taskmanager nicht messbar), dürfte das keine Rolle spielen. Und der php-Script dürfte uch nicht gerade viel verbrauchen, denn mehr als 20 registrierte User sind selten online, dementpsrechend kurz dürfte die Liste ausfallen.


GTA-Place - Sa 30.12.06 17:34

Achja stimmt, der Server ruft es ja selbst auf :oops: .