java.lang.Object
io.helidon.webserver.http2.Http2Connection
- All Implemented Interfaces:
InterruptableTask<Void>
,ServerConnection
,Runnable
,Callable<Void>
HTTP/2 server connection.
A single connection is created between a client and a server.
A single connection serves multiple streams.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Signals if a task can be interrupted at the time this method is called.void
clientSettings
(Http2Settings http2Settings) Client settings, obtained from SETTINGS frame or HTTP/2 upgrade request.void
close
(boolean interrupt) Close a connection.void
Expect connection preface (prior knowledge).void
Start handling the connection.idleTime()
How long is this connection idle.toString()
void
upgradeConnectionData
(HttpPrologue prologue, Http2Headers headers) Connection headers from an upgrade request from HTTP/1.1.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.helidon.common.task.InterruptableTask
call, run
-
Method Details
-
handle
Description copied from interface:ServerConnection
Start handling the connection. Data is provided throughServerConnectionSelector.connection(io.helidon.webserver.ConnectionContext)
.- Specified by:
handle
in interfaceServerConnection
- Parameters:
requestSemaphore
- semaphore that is responsible for maximal concurrent request limit, the connection implementation is responsible for acquiring a permit from the semaphore for the duration of a request, and releasing it when the request ends; please be very careful, as this may lead to complete stop of the server if incorrectly implemented- Throws:
InterruptedException
- to interrupt any waiting state and terminate this connection
-
clientSettings
Client settings, obtained from SETTINGS frame or HTTP/2 upgrade request.- Parameters:
http2Settings
- client settings to use
-
upgradeConnectionData
Connection headers from an upgrade request from HTTP/1.1.- Parameters:
prologue
- prologue of the HTTP/2 requestheaders
- headers to use for first stream (obtained from original HTTP/1.1 request)
-
expectPreface
public void expectPreface()Expect connection preface (prior knowledge). -
canInterrupt
public boolean canInterrupt()Description copied from interface:InterruptableTask
Signals if a task can be interrupted at the time this method is called.- Specified by:
canInterrupt
in interfaceInterruptableTask<Void>
- Returns:
- outcome of interruptable test
-
toString
-
idleTime
Description copied from interface:ServerConnection
How long is this connection idle. This is a duration from the last request to now.- Specified by:
idleTime
in interfaceServerConnection
- Returns:
- idle duration
-
close
public void close(boolean interrupt) Description copied from interface:ServerConnection
Close a connection. This may be called during shutdown of the server, or when idle timeout is reached.- Specified by:
close
in interfaceServerConnection
- Parameters:
interrupt
- whether to interrupt in progress requests (always interrupts idle requests waiting for initial request data)
-