Να ρίξω κι εγώ τα 2 cents μου, γιατί με έχει απασχολήσει το θέμα στο παρελθόν.
Το unload στο browser, πετιέται είτε όταν κλείνεις το παράθυρο, είτε όταν κάνεις navigate σε μια άλλη σελίδα, χωρίς να σου δίνει κάτι που να "κάνει τη διαφορά" μεταξύ των 2. Αν υλοποιήσεις κάτι σε polling ( heartbeat είναι νομίζω πιο δόκιμος όρος ) πρέπει να το χρειάζεσαι πραγματικά, γιατι πολλαπλασιάζεις τις κλήσεις στο server, όσο μικρό κι αν είναι αυτό που κάνουν - σου κλέβουν threads αν μη τι άλλο.
Νομίζω λοιπόν ότι στην πλειοψηφία των περιπτώσεων κανείς δε χρειάζεται τόσο πολύ άμεσα την πληροφορία ότι κάποιος client έφυγε απο το site. Αν το συνδιάσεις αυτό με λίγο προσεκτικό session resource managment, τότε πραγματικά μπορείς να την παλέψεις χωρίς αλχημείες.
Αν πάντως, για οποιονδήποτε λόγο ρε παιδί μου, ντε και καλά, επιβάλλεται, δε μπορούμε να κάνουμε αλλιώς ... η πιο απλή λύση που θα χρησιμοποιούσα εγώ είναι ένα κρυμμένο frame που κάνει refresh με meta tag. Τι ajax και javascript και αλχημείες ... μια κρυμένη φορμίτσα σε ένα frame που δε φαίνεται πουθενά, και είσαι μια χαρά.
Άντε, καλησπέρα μας :]
Angel
O:]