cc.spray.can

HttpServer

class HttpServer extends HttpPeer with ResponsePreparer

The actor implementing the spray-can HTTP server functionality. An HttpServer instance starts one private thread and binds to one port (as configured with the given ServerConfig. It manages connections and requests quite efficiently and can handle thousands of concurrent connections. For every incoming HTTP request the HttpServer creates an RequestContext instance that is dispatched to the server actor configured via the given ServerConfig.

The service actor is expected to either complete the request by calling responder.complete or start a chunked response by calling responder.startChunkedResponse. If neither of this happens within the timeout period configured as requestTimeout in the ServerConfig the HttpServer actor dispatches a Timeout instance to the configure timeout actor. The timeout actor is expected to complete the request within the configured timeoutTimeout period. If this doesn't happen the HttpServer completes the request itself with the result of its timeoutTimeoutResponse method.

An HttpServer also reacts to cc.spray.can.GetStats messages.

Linear Supertypes
ResponsePreparer, MessagePreparer, HttpPeer, Actor, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. HttpServer
  2. ResponsePreparer
  3. MessagePreparer
  4. HttpPeer
  5. Actor
  6. AnyRef
  7. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new HttpServer (config: ServerConfig)

Type Members

  1. type Receive = PartialFunction[Any, Unit]

    Definition Classes
    Actor

Value Members

  1. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  2. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  3. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  4. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  5. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  6. def appendChunkExtensions (extensions: List[ChunkExtension], sb: StringBuilder): StringBuilder

    Attributes
    protected final
    Definition Classes
    MessagePreparer
    Annotations
    @tailrec()
  7. def appendHeader (name: String, value: String, sb: StringBuilder): StringBuilder

    Attributes
    protected
    Definition Classes
    MessagePreparer
  8. def appendHeaders (httpHeaders: List[HttpHeader], sb: StringBuilder, connectionHeaderValue: Option[String] = None): Option[String]

    Attributes
    protected final
    Definition Classes
    MessagePreparer
    Annotations
    @tailrec()
  9. def appendLine (sb: StringBuilder): StringBuilder

    Attributes
    protected
    Definition Classes
    MessagePreparer
  10. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  11. def become (behavior: Receive, discardOld: Boolean): Unit

    Definition Classes
    Actor
  12. def cleanClose (conn: Conn): Unit

    Attributes
    protected
    Definition Classes
    HttpPeer
  13. def cleanUp (): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  14. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  15. def close (conn: Conn): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  16. val config : ServerConfig

    Definition Classes
    HttpServer → HttpPeer
  17. val connections : LinkedList[Conn]

    Attributes
    protected
    Definition Classes
    HttpPeer
  18. def dateTimeNow : DateTime

    Attributes
    protected
    Definition Classes
    ResponsePreparer
  19. def encode (sb: StringBuilder): ByteBuffer

    Attributes
    protected
    Definition Classes
    MessagePreparer
  20. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  21. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  22. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  23. def finishWrite (conn: Conn): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  24. def freshInstance (): Option[Actor]

    Definition Classes
    Actor
    Annotations
    @experimental()
  25. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef → Any
  26. def handleChunkedChunk (conn: Conn, parser: ChunkedChunkParser): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  27. def handleChunkedEnd (conn: Conn, parser: ChunkedEndParser): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  28. def handleChunkedStart (conn: Conn, parser: ChunkedStartParser): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  29. def handleCompleteMessage (conn: Conn, parser: CompleteMessageParser): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  30. def handleConnectionEvent (key: SelectionKey): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  31. def handleParseError (conn: Conn, parser: ErrorParser): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  32. def handleTimedOutRequests (): Unit

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  33. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  34. val idleTimeoutCycle : Option[ScheduledFuture[AnyRef]]

    Attributes
    protected
    Definition Classes
    HttpPeer
  35. def isDefinedAt (message: Any): Boolean

    Definition Classes
    Actor
  36. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  37. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  38. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  39. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  40. def openRequestCount : Int

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer
  41. def optionSelf : Option[ActorRef]

    Definition Classes
    Actor
  42. def postRestart (reason: Throwable): Unit

    Definition Classes
    Actor
  43. def postStop (): Unit

    Definition Classes
    HttpServer → HttpPeer → Actor
  44. def preRestart (reason: Throwable, message: Option[Any]): Unit

    Definition Classes
    HttpPeer → Actor
  45. def preStart (): Unit

    Definition Classes
    HttpServer → HttpPeer → Actor
  46. def prepareChunk (extensions: List[ChunkExtension], body: Array[Byte]): List[ByteBuffer]

    Definition Classes
    MessagePreparer
  47. def prepareChunkedResponseStart (requestLine: RequestLine, response: HttpResponse, reqConnectionHeader: Option[String]): (List[ByteBuffer], Boolean)

    Attributes
    protected
    Definition Classes
    ResponsePreparer
  48. def prepareFinalChunk (extensions: List[ChunkExtension], trailer: List[HttpHeader]): List[ByteBuffer]

    Definition Classes
    MessagePreparer
  49. def prepareResponse (requestLine: RequestLine, response: HttpResponse, reqConnectionHeader: Option[String]): (List[ByteBuffer], Boolean)

    Attributes
    protected
    Definition Classes
    ResponsePreparer
  50. def prepareWriting (respond: Respond): Unit

    Attributes
    protected
  51. def protectIO [A] (operation: String, conn: Conn = null)(body: ⇒ A): Either[String, A]

    Attributes
    protected final
    Definition Classes
    HttpPeer
  52. val readBuffer : ByteBuffer

    Attributes
    protected
    Definition Classes
    HttpPeer
  53. def reapConnection (conn: Conn): Unit

    Attributes
    protected
    Definition Classes
    HttpPeer
  54. def receive : PartialFunction[Any, Unit]

    Attributes
    protected
    Definition Classes
    HttpServer → HttpPeer → Actor
  55. val requestTimeoutCycle : Option[ScheduledFuture[AnyRef]]

    Attributes
    protected
    Definition Classes
    HttpPeer
  56. var requestsDispatched : Long

    Attributes
    protected
    Definition Classes
    HttpPeer
  57. var requestsTimedOut : Long

    Attributes
    protected
    Definition Classes
    HttpPeer
  58. val selector : AbstractSelector

    Attributes
    protected
    Definition Classes
    HttpPeer
  59. implicit val self : ScalaActorRef

    Attributes
    implicit
    Definition Classes
    Actor
  60. def serverHeader : String

    Attributes
    protected
    Definition Classes
    HttpServer → ResponsePreparer
  61. val someSelf : Some[ActorRef]

    Definition Classes
    Actor
  62. var startTime : Long

    Attributes
    protected
    Definition Classes
    HttpPeer
  63. def stats : Stats

    Attributes
    protected
    Definition Classes
    HttpPeer
  64. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  65. def timeoutTimeoutResponse (method: HttpMethod, uri: String, protocol: HttpProtocol, headers: List[HttpHeader], remoteAddress: InetAddress): HttpResponse

    This methods determines the HttpResponse to sent back to the client if both the service actor as well as the timeout actor do not produce timely responses with regard to their timeout periods configured via the HttpServers ServerConfig.

    This methods determines the HttpResponse to sent back to the client if both the service actor as well as the timeout actor do not produce timely responses with regard to their timeout periods configured via the HttpServers ServerConfig.

    Attributes
    protected
  66. def toString (): String

    Definition Classes
    AnyRef → Any
  67. def unbecome (): Unit

    Definition Classes
    Actor
  68. def unhandled (msg: Any): Unit

    Definition Classes
    Actor
  69. def wait (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  70. def wait (arg0: Long, arg1: Int): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  71. def wait (arg0: Long): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()

Deprecated Value Members

  1. def preRestart (reason: Throwable): Unit

    Definition Classes
    Actor
    Annotations
    @deprecated
    Deprecated

    use two-argument version, this one will be removed in 2.0

Inherited from ResponsePreparer

Inherited from MessagePreparer

Inherited from HttpPeer

Inherited from Actor

Inherited from AnyRef

Inherited from Any