The engine does perform a heartbeat internally, and clients will be notified when a timeout occurs through the UEngine::OnNetworkFailure() event. If you’d like, you can add your own handler for this event, or you can subclass UGameEngine and override the HandleNetworkFailure function. See ShooterEngine.h and ShooterEngine.cpp in the ShooterGame sample project for an example of overriding HandleNetworkFailure.
By default the built-in timeouts are 60 seconds, but you can customize them in your DefaultEngine.ini file:
The InitialConnectTimeout is used when first trying to connect to a server, the ConnectionTimeout is used after a connection to a server has been established.
(This assumes you are using the default IpNetDriver.)