They use socket connections more than likely. Thats the other alternative
you can use but does mean setting up a socket server.

One caveat with the technique I mentioned ... If your application gets
really busy you will have a lot of traffic happening between client and
server.

On Tue, Jan 18, 2011 at 9:16 AM, Srivatsa Prasad <srivatsa6...@gmail.com>wrote:

> Hi,
>
> That should do the trick for me.
>
> I wonder how gmail or facebook do this.
>
>
> On Tue, Jan 18, 2011 at 12:38 PM, Gareth McCumskey 
> <gmccums...@gmail.com>wrote:
>
>> The best you can do is try to use javascript to catch an event of the
>> person leaving the page (http://api.jquery.com/unload/). the problem as
>> that link suggests is that its also browser dependant. Some browsers
>> implement only parts of that event. For example, some browsers do not fire
>> the unload event on browser closing but do on changing url in the tab etc.
>> Its a very tricky thing to do.
>>
>> The best way I can think of is have a periodic ajax request fire every 1
>> minute or or so. This ajax event updates the users "last active" time. All
>> other users IM client can then update the currently online people to be
>> those whose last active time was updated in the last minute. In other words,
>> if I am a user who has a list of currently logged in people, and my friend
>> has his browser open, he sees me online. My browser is regularly sending the
>> a small ajax request to the server telling it that at time now I am online.
>> My friends browser checks to see who is online every minute as well. I close
>> my browser and now my last active time is not being changed. My friends
>> browser gets the list of people online and sees that my last active time is
>> now longer than a minute ago therefore I must be offline.
>>
>>
>> On Tue, Jan 18, 2011 at 8:19 AM, Srivatsa Prasad 
>> <srivatsa6...@gmail.com>wrote:
>>
>>> Hi,
>>>
>>> Thank you for the response.
>>>
>>> The scenario u mentioned below, I see one issue, which cannot be handled.
>>>
>>> I think of using the database to see who are all the logged in users, i
>>> do it at the time when they log-in. I can mark them as logged out if they
>>> log out,
>>>
>>> The problems i foresee are,
>>> 1 The user session doesn't expire since the page makes a request in a
>>> certain interval. I don't mind if the session doesn't expire.
>>> 2 The other issue is if the user closes the browser or the user losses
>>> connectivity, i am not sure how to handle this situation , how to notify
>>> other users that an other user has logged out ?
>>>
>>> If u could give me some idea on the 2nd issue, i will take it further .
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Mon, Jan 17, 2011 at 5:50 PM, Gareth McCumskey 
>>> <gmccums...@gmail.com>wrote:
>>>
>>>> This is very commonly asked and the simple answer is .... its rather
>>>> difficult.
>>>>
>>>> Its difficult because when someone logs into an application, this fact
>>>> is stored server-side where all the PHP code exists. Lets consider a
>>>> scenario. You have an application to which people need to log into. Your
>>>> session timeout (i.e. how long you allow someone to stay logged in with no
>>>> interaction) is set to 30 minutes. Someone comes along and logs in. When he
>>>> logs in you can record the exact time he logged in. Everytime this user
>>>> accesses a page that calls your application you can update that timestamp 
>>>> to
>>>> confirm him as still online. But then the requests (i.e. clicking of links,
>>>> form submission, etc) stops, and 30 minutes later the session timesout.
>>>>
>>>> The problem? What if he had closed his browser and not clicked the
>>>> logout link? Was he actually still sitting in front of his computer when 
>>>> his
>>>> session ended? At what time in those last 30 minutes of inactivity was he
>>>> still there? When did he close the browser?
>>>>
>>>> You don't know. Closing the browser is something you cannot determine,
>>>> even using javascript.
>>>>
>>>> The only way to reliably do this is to have some ajax sitting in the
>>>> application that sends a request every few minutes that can verify that the
>>>> person is still there and his browser is still open. The downside is that
>>>> his session will never timeout on its own (as each little ajax request will
>>>> reset the internal PHP session timer) and you will have to build your own
>>>> session timeout mechanism from scratch to force a "logout" when it does
>>>> timeout.
>>>>
>>>> On Mon, Jan 17, 2011 at 1:49 PM, Srivatsa Prasad <
>>>> srivatsa6...@gmail.com> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I am using symfony 1.4 and doctrine.
>>>>> I am trying to build a small chat app so,
>>>>> I want to know who are all the user of my app logged into to at now.
>>>>>
>>>>> --
>>>>> Thanks & Regards
>>>>> Srivatsa
>>>>>
>>>>> --
>>>>> If you want to report a vulnerability issue on symfony, please send it
>>>>> to security at symfony-project.com
>>>>>
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "symfony users" group.
>>>>> To post to this group, send email to symfony-users@googlegroups.com
>>>>> To unsubscribe from this group, send email to
>>>>> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/symfony-users?hl=en
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Gareth McCumskey
>>>> http://garethmccumskey.blogspot.com
>>>> twitter: @garethmcc
>>>> identi.ca: @garethmcc
>>>>
>>>>  --
>>>> If you want to report a vulnerability issue on symfony, please send it
>>>> to security at symfony-project.com
>>>>
>>>> You received this message because you are subscribed to the Google
>>>> Groups "symfony users" group.
>>>> To post to this group, send email to symfony-users@googlegroups.com
>>>> To unsubscribe from this group, send email to
>>>> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/symfony-users?hl=en
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks & Regards
>>> Srivatsa
>>>
>>> --
>>> If you want to report a vulnerability issue on symfony, please send it to
>>> security at symfony-project.com
>>>
>>> You received this message because you are subscribed to the Google
>>> Groups "symfony users" group.
>>> To post to this group, send email to symfony-users@googlegroups.com
>>> To unsubscribe from this group, send email to
>>> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
>>> For more options, visit this group at
>>> http://groups.google.com/group/symfony-users?hl=en
>>>
>>
>>
>>
>> --
>> Gareth McCumskey
>> http://garethmccumskey.blogspot.com
>> twitter: @garethmcc
>> identi.ca: @garethmcc
>>
>>  --
>> If you want to report a vulnerability issue on symfony, please send it to
>> security at symfony-project.com
>>
>> You received this message because you are subscribed to the Google
>> Groups "symfony users" group.
>> To post to this group, send email to symfony-users@googlegroups.com
>> To unsubscribe from this group, send email to
>> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
>> For more options, visit this group at
>> http://groups.google.com/group/symfony-users?hl=en
>>
>
>
>
> --
> Thanks & Regards
> Srivatsa
>
> --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google
> Groups "symfony users" group.
> To post to this group, send email to symfony-users@googlegroups.com
> To unsubscribe from this group, send email to
> symfony-users+unsubscr...@googlegroups.com<symfony-users%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/symfony-users?hl=en
>



-- 
Gareth McCumskey
http://garethmccumskey.blogspot.com
twitter: @garethmcc
identi.ca: @garethmcc

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to