The Zend Developer Zone has posted the second to last part of their Ajax chat tutorial today. This time, they focus on updating the list of users currently in the chat.
Updating the user list should occur whenever the user adds a new chat message or refreshes the chat window. Since we already use the MessageAction() method on our PHP IndexController class to forward such responses to the browser, we'll simply amend it to also return a list of currently online users.
They start by altering the MessageAction controller to handle the fetching of online users and split out the code to grab the latest messages into a getNewMessages function. They check who is online by looking at the last messages to the queue (not reliable, but about as good as it can get with a stateless protocol). Finally, they update the handleRefresh method to execute the new "find online users" code as pass it on to the output view.