I'm about to write my own RSS service for a DB driven site.
I'm wondering, is it the client app that keeps track of whether the feed is new?
In other words, if I have a URL which automatically generates an RSS page of the most recent article, is that pretty much all I need to do, and the client app compares the date in the RSS page to the date from last time it checked the site and alerts the user of a new article? Or am I totally missing something here?
The reason I'm confused is that I've seen in RSS readers, the feeds stack up like incoming email, so if my page is dynamic and only feeds the latest article, how does the client know if it missed any articles?
A properly formatted XML file for RSS will have the publishing date and article date in it already. That's sufficient for aggregators or the bots to figure out what's new. If you want to more aggressively announce your feed updates you should set your system to ping some of the bigger services when there's new information in your feed.
I don't think pining is the solution because this is actually for a blog server, with thousands of bloggers (each with their own feed), and their subscribers are just small-time users. Or am I totally missing something here?
Look at this scenario for example:
1) A new article is written. 2) Client checks the URL to my feed, which automatically generates RSS/XML info about the last article. So far so good. 3) A new article is written. 4) Another new article is written. 5) Client checks the URL to my feed. Oops, only article 4 is shown in the RSS file, since it only generates info on the latest article. How does the client app know about article 3?
Feeds are capable of listing multiple articles. One feed could contain any number of articles you choose. You don't generally overwrite the previous feed with only one article. Most feeds contain a list of the most recent articles. Why not list the most recent 15 articles or so?