我正在尝试使用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