'Same as on_recv, but callback will get this stream as first argument
callback must take exactly two arguments, as it will be called as::
callback(stream, msg)
Useful when a single callback should be used with multiple streams.'

def on_recv_stream(self, callback, copy=True):

    if (callback is None):
        self.stop_on_recv()
    else:
        self.on_recv((lambda msg: callback(self, msg)), copy=copy)
