The events can now be read both from a socket and from a file