我正在嘗試使用SparkJava的Kotlin,並且無法實現WebSockets路由。我試圖遵循SparkJava網站上提供的WebSockets示例(http://sparkjava.com/tutorials/websocket-chat),雖然我可以使OnWebSocketConnect和OnWebSocketMessage元素工作,但OnWebSocketClose不會被拾取。SparkJava使用Kotlin和WebSockets
我已經在Java中實現了這一點,以檢查它不是瀏覽器問題,並且Java實現工作正常......所以這似乎是Kotlin解釋OnWebSocketClose批註的具體方式。
我的代碼如下所示
import spark.Spark.*
import org.eclipse.jetty.websocket.api.Session
import org.eclipse.jetty.websocket.api.annotations.*;
fun main(args: Array<String>) {
staticFileLocation("/public")
webSocket("/chat", WSHandler::class.java)
init()
}
@WebSocket
class WSHandler {
@OnWebSocketConnect
fun connected(session: Session) = println("session connected")
@OnWebSocketClose
fun closed(session: Session, statusCode: Int, reason: String) = println("closed sessions")
@OnWebSocketMessage
fun message(session: Session, message: String) = println("Got: $message")
}
的HTML/JavaScript的等都是按照在SparkJava網站上的教程。
太棒了,謝謝。順便說一句,優秀的答案,不僅是修復,而是錯誤的原因。 – Codemwnci