First of all, it's unclear how many different "stream.on" methods there are--I know there is:
data, end, destroy, limit, error
Are there any more? Thru testing, I found that "destroy" ends up calling "end" right after, so I'm wondering if that's the case for other ones like "error" -- I'd like to handle the reconnection attempts at one place if possible, and it seems like "end" is the place to do that.