Twice in the past month I've had my long running Twitter Stream consumer stall and not receive any tweets, without it calling the no_data_callback. I'm wondering if this could be because the Streaming API is sending whitespace (\n or \r or both) and this whitespace is actually treated as data at https://github.com/voloko/twitter-stream/blob/master/lib/twitter/json_stream.rb#L130. This line that resets @last_data_received_at doesn't seem to check whether the data is whitespace or not - and maybe that's why the no_data_callback is never called.
I guess this would be the wrong place to set @last_data_received_at anyway because it can't know that the data is whitespace without first parsing it.
I'm happy to work on a fix, but I wanted to get some feedback first on whether or not my logic seems sound.
Twice in the past month I've had my long running Twitter Stream consumer stall and not receive any tweets, without it calling the
no_data_callback. I'm wondering if this could be because the Streaming API is sending whitespace (\n or \r or both) and this whitespace is actually treated as data at https://github.com/voloko/twitter-stream/blob/master/lib/twitter/json_stream.rb#L130. This line that resets@last_data_received_atdoesn't seem to check whether the data is whitespace or not - and maybe that's why theno_data_callbackis never called.I guess this would be the wrong place to set
@last_data_received_atanyway because it can't know that the data is whitespace without first parsing it.I'm happy to work on a fix, but I wanted to get some feedback first on whether or not my logic seems sound.