I’m working on a project that I think is a good fit for RSS, so I’m trying to come up to speed on it. I can write Unix device drivers in C, but web programming is all new to me. I have some really high level questions about how RSS works.
When you subscribe to a feed do you get “historical” events; i.e., do you get a list of things that happened before you subscribed or just things that happen afterwards?
If you have already subscribed, but exit the application that is monitoring the feed (or power off the PC, network goes down etc.) and then reconnect, do you get the events that happened while you were not connected?
Is RSS entirely a push model?
Finally, how appropriate is RSS for feeds that only apply to a single user? Is it kosher to have the RSS server select the events that are of interest to me and create a custom feed?
RSS is really a cinch - it’s just an XML file with the contents of what you want it to show, built to a certain schema.
Its contents are decided by what generates the XML. Thus if the developer chooses to retain the previous 10 stories in the XML, then that’s what the user sees.
Single-user RSS is groovy - check the custom newsfeed on news.google.com.
It’s a “push” model dependent on how often it gets paged by the client - on boot, every hour, every 10 minutes. But it’s actually passive.
Is there any std syntax that says “give me everything since last HH:MM:SS”?
Can you say more? What do you mean by “paged”?
The standard model for RSS is that there’s a document on a server, and clients that check for updates every so often. There is a place in the standard for the document to specify how often it should be checked, and that’s usually how often clients check it.
There is no standard for grabbing the most recent headlines. Instead, RSS readers just grab all of the headlines. If you want to get around that, you should look into having metaheadlines that document every set of headlines you’ve ever published. You do have to be careful about generating large documents, though, if you’re looking to transmit information over dialup connections.
As usual, there’s a tutorial on RSS over at W3Schools. You should take a look at that for technical details.
Thanks, that’s a great site.