title: ServiceStack session lifetime is increased on heartbeat
body: <p>I have a Service with a <code>ServerEventsFeature</code>. I'm using a <code>ServerEventsClient</code> which by default sends heartbeats to the service. As far as I know ServiceStack doesn't support sliding expiration from the box, but session lifetime is refreshed after every heartbeat. Is this how it should be and are there any ways to control that? I've tested it by setting <code>SessionExpiry</code> to 30s and <code>HeartbeatInterval</code> to 20s - the app sends multiple (10+) heartbeats w\o any problems. In addition, if client app crashes and force closes - the session will be "alive" in the server sessions list until I try to use it, is there a way to drop it earlier?</p>
  
  <p>Example:  </p>
  
  <ol>
  <li><p>start the server  </p></li>
  <li><p>launch client 1 </p></li>
  </ol>
  
  <p>execute  </p>
  
  <pre><code>var sessionPattern = IdUtils.CreateUrn&lt;IAuthSession&gt;("");
  var sessionKeys = Cache.GetKeysStartingWith(sessionPattern).ToList();
  var allSessions = Cache.GetAll&lt;IAuthSession&gt;(sessionKeys);
  </code></pre>
  
  <p>the results count is 1</p>
  
  <ol start="3">
  <li><p>launch client 2 and 3 </p></li>
  <li><p>drop client 1 through force shutdown (no logout calls)</p></li>
  <li><p>execute the same code again - results count is 3</p></li>
  </ol>