JettyClientWsSession.kt

  1. package com.hexagontk.http.client.jetty.ws

  2. import com.hexagontk.http.model.HttpRequestPort
  3. import com.hexagontk.http.model.ws.WsSession
  4. import org.eclipse.jetty.websocket.api.Callback.NOOP
  5. import org.eclipse.jetty.websocket.api.Session
  6. import java.net.URI
  7. import java.nio.ByteBuffer

  8. class JettyClientWsSession(
  9.     override val uri: URI,
  10.     private val session: Session
  11. ) : WsSession {

  12.     override val attributes: Map<*, *>
  13.         get() = throw UnsupportedOperationException()
  14.     override val request: HttpRequestPort
  15.         get() = throw UnsupportedOperationException()
  16.     override val exception: Exception
  17.         get() = throw UnsupportedOperationException()
  18.     override val pathParameters: Map<String, String>
  19.         get() = throw UnsupportedOperationException()

  20.     override fun send(data: ByteArray) {
  21.         session.sendBinary(ByteBuffer.wrap(data), NOOP)
  22.     }

  23.     override fun send(text: String) {
  24.         session.sendText(text, NOOP)
  25.     }

  26.     override fun ping(data: ByteArray) {
  27.         session.sendPing(ByteBuffer.wrap(data), NOOP)
  28.     }

  29.     override fun pong(data: ByteArray) {
  30.         session.sendPong(ByteBuffer.wrap(data), NOOP)
  31.     }

  32.     override fun close(status: Int, reason: String) {
  33.         session.close(status, reason, NOOP)
  34.     }
  35. }