object HttpServer
- Source
- HttpServer.scala
- Alphabetic
- By Inheritance
- HttpServer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- type Service[F[_]] = (HttpRequestHeader, Stream[F, Byte]) ⇒ Resource[F, HttpResponse[F]]
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
create[F[_]](bindTo: Option[SocketAddress[Host]] = None, maxHeaderSize: Int = 10 *1024, requestHeaderReceiveTimeout: Duration = 5.seconds, requestCodec: Codec[HttpRequestHeader] = HttpRequestHeaderCodec.defaultCodec, responseCodec: Codec[HttpResponseHeader] = ...)(service: Service[F])(implicit arg0: Async[F], arg1: Network[F]): Stream[F, Stream[F, RequestResult[F]]]
Creates simple http server,
Creates simple http server,
Returns a stream of connection streams. Each inner stream represents a client connection. Users can control parallelism by using parJoin with desired concurrency level.
- bindTo
Optional socket address (host and port) where to bind server to. If None, binds to all interfaces.
- maxHeaderSize
Maximum size of http header for incoming requests, in bytes
- requestHeaderReceiveTimeout
A timeout to await request header to be fully received. Request will fail, if the header won't be read within this timeout.
- requestCodec
Codec for Http Request Header
- responseCodec
Codec for Http Response Header
- service
A function that handles successful requests only. Takes (HttpRequestHeader, Stream[F,Byte]) and returns a Resource containing the HTTP response.
- returns
A stream of connection streams, each emitting ServerResult. Use .parJoin(maxConcurrency) to control parallelism.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
handleConnection[F[_]](maxHeaderSize: Int, requestHeaderReceiveTimeout: Duration, requestCodec: Codec[HttpRequestHeader], responseCodec: Codec[HttpResponseHeader], service: (HttpRequestHeader, Stream[F, Byte]) ⇒ Resource[F, HttpResponse[F]])(socket: Socket[F])(implicit arg0: Async[F]): Stream[F, RequestResult[F]]
Handles a single client connection by processing HTTP requests and generating RequestResults.
Handles a single client connection by processing HTTP requests and generating RequestResults.
This method processes the complete lifecycle of HTTP requests on a socket connection: - Reads and parses HTTP request headers with timeout - Invokes the service function with parsed request and body stream - Streams the response back to the client - Generates appropriate RequestResult for success, service failure, or response failure cases - Ensures client receives proper HTTP responses even when service fails
- maxHeaderSize
Maximum size allowed for HTTP request headers
- requestHeaderReceiveTimeout
Timeout for receiving complete request headers
- requestCodec
Codec for decoding HTTP request headers
- responseCodec
Codec for encoding HTTP response headers
- service
Function to process requests and generate responses
- socket
The client socket connection
- returns
Stream of RequestResult capturing the outcome of each request
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )