1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-25 16:07:12 -07:00

Update KobaltClient to the correct WebSocket library.

This commit is contained in:
Cedric Beust 2018-02-21 16:46:41 -08:00
parent 49bc2b3a15
commit f95075c1ae
2 changed files with 19 additions and 28 deletions

View file

@ -26,7 +26,7 @@ val bs = buildScript {
object Versions { object Versions {
val kotlin = "1.2.10" val kotlin = "1.2.10"
val okhttp = "3.9.0" val okhttp = "3.9.1"
val okio = "1.13.0" val okio = "1.13.0"
val retrofit = "2.3.0" val retrofit = "2.3.0"
val gson = "2.8.2" val gson = "2.8.2"
@ -175,7 +175,7 @@ val kobaltApp = project(kobaltPluginApi, wrapper) {
"com.google.code.gson:gson:${Versions.gson}", "com.google.code.gson:gson:${Versions.gson}",
"com.squareup.retrofit2:retrofit:${Versions.retrofit}", "com.squareup.retrofit2:retrofit:${Versions.retrofit}",
"com.squareup.retrofit2:converter-gson:${Versions.retrofit}", "com.squareup.retrofit2:converter-gson:${Versions.retrofit}",
"com.squareup.okhttp3:okhttp-ws:3.4.2", // "com.squareup.okhttp3:okhttp-ws:3.4.2",
"biz.aQute.bnd:biz.aQute.bndlib:3.5.0", "biz.aQute.bnd:biz.aQute.bndlib:3.5.0",
*mavenResolver("spi"), *mavenResolver("spi"),

View file

@ -12,15 +12,7 @@ import com.beust.kobalt.misc.KFiles
import com.beust.kobalt.misc.warn import com.beust.kobalt.misc.warn
import com.google.gson.Gson import com.google.gson.Gson
import com.google.inject.Guice import com.google.inject.Guice
import okhttp3.OkHttpClient import okhttp3.*
import okhttp3.Request
import okhttp3.Response
import okhttp3.ResponseBody
import okhttp3.ws.WebSocket
import okhttp3.ws.WebSocketCall
import okhttp3.ws.WebSocketListener
import okio.Buffer
import java.io.IOException
fun main(argv: Array<String>) { fun main(argv: Array<String>) {
Kobalt.INJECTOR = Guice.createInjector(MainModule(Args(), KobaltSettings.readSettingsXml())) Kobalt.INJECTOR = Guice.createInjector(MainModule(Args(), KobaltSettings.readSettingsXml()))
@ -39,26 +31,22 @@ class KobaltClient : Runnable {
.url("$url?projectRoot=$projectRoot&buildFile=$buildFile") .url("$url?projectRoot=$projectRoot&buildFile=$buildFile")
.build() .build()
var webSocket: WebSocket? = null var webSocket: WebSocket? = null
val ws = WebSocketCall.create(client, request).enqueue(object: WebSocketListener { val socketListener = object: WebSocketListener() {
override fun onOpen(ws: WebSocket, response: Response) { override fun onFailure(webSocket: WebSocket, ex: Throwable, response: Response?) {
webSocket = ws
}
override fun onPong(p0: Buffer?) {
println("WebSocket pong")
}
override fun onClose(p0: Int, p1: String?) {
println("WebSocket closed")
}
override fun onFailure(ex: IOException, response: Response?) {
Exceptions.printStackTrace(ex) Exceptions.printStackTrace(ex)
error("WebSocket failure: ${ex.message} response: $response") error("WebSocket failure: ${ex.message} response: $response")
} }
override fun onMessage(body: ResponseBody) { override fun onOpen(ws: WebSocket, response: Response) {
val json = body.string() webSocket = ws
}
override fun onClosing(webSocket: WebSocket, code: Int, reason: String) {
println("Closing socket")
}
override fun onMessage(webSocket: WebSocket, text: String) {
val json = text
val wsCommand = Gson().fromJson(json, WebSocketCommand::class.java) val wsCommand = Gson().fromJson(json, WebSocketCommand::class.java)
if (wsCommand.errorMessage != null) { if (wsCommand.errorMessage != null) {
warn("Received error message from server: " + wsCommand.errorMessage) warn("Received error message from server: " + wsCommand.errorMessage)
@ -87,7 +75,10 @@ class KobaltClient : Runnable {
} }
} }
} }
}) }
val ws = client.newWebSocket(request, socketListener)
ws.close(1000, "All good")
} }
} }