From Lightstreamer Server point of view, the connection was closed by the Remote part. Do you feel it's possible? Is the log a full snippet or has it been filtered? Was anything logged just before the first line reported?
Of course, the error is "fatal" only for the underlying Proxy Adapter. The RobustNetworkedDataProvider can overcome the issue by creating a new underlying Proxy Adapter.

About keepalives, if you can enforce them, this can only have positive effects;
they can also prevent any intermediate node from dropping the socket.
Note that the ARI protocol also defines its own keepalives, that can be sent by the Remote Server to the Proxy Adapter (with no timeout checks, though).
I suppose you are not using our .NET Remote Adapter SDK;
otherwise, consider that the Remote Server already sends keepalives every second (keepalives are not sent when data already flows on the connection).