jooby/src/main/java/org/jooby/Sse.java
@Nonnull
  public Sse keepAlive(final int time, final TimeUnit unit) {
    return keepAlive(unit.toMillis(time));
  }
@Nonnull
  public Sse keepAlive(final int time, final TimeUnit unit) {
    return keepAlive(unit.toMillis(time));
  }
@ Nonnull public Sse keepAlive ( final int time , final TimeUnit unit ) { return keepAlive ( unit . toMillis ( time ) ) ; }
The keep alive time can be used to prevent connections from timing out:

<pre>{@code
{
sse("/events/:id", sse -> {
sse.keepAlive(15, TimeUnit.SECONDS);
});
}
}</pre>

<p>
The previous example will sent a <code>':'</code> message (empty comment) every 15 seconds to
keep the connection alive. If the client drop the connection, then the
{@link #onClose(Throwing.Runnable)} event will be fired it.
</p>

<p>
This feature is useful when you want to detect {@link #onClose(Throwing.Runnable)} events without
waiting until you send a new event. But for example, if your application already generate
events
every 15s, then the use of keep alive is useless and you should avoid it.
</p>

@param time Keep alive time.
@param unit Time unit.
@return This instance.
The keep alive time can be used to prevent connections from timing out :