
[英]Seeking a simple Android example to connect to Spring websocket (using STOMP and sockjs)
[英]How do I connect to a Spring STOMP websocket using a native Android client?
我正在尝试使用 Android Studio 和 Spring Boot with kotlin 做一个小型聊天室练习项目。我的问题是我已经尝试使用许多不同的库将应用程序连接到 websocket:例如:OkHttp、Scarlet、Ktor
但到目前为止我还没有找到解决办法。
对于 websocket 代码,我遵循了 spring 网站上的教程。 这是代码:
@Controller
class MessageController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
fun greeting(message: String): String {
return message
}
}
@Configuration
@EnableWebSocketMessageBroker
class WebSocketConfig : WebSocketMessageBrokerConfigurer {
override fun configureMessageBroker(registry: MessageBrokerRegistry) {
registry.enableSimpleBroker("/topic")
registry.setApplicationDestinationPrefixes("/app")
}
override fun registerStompEndpoints(registry: StompEndpointRegistry) {
registry.addEndpoint("/gs-guide-websocket").setAllowedOrigins("*").withSockJS()
}
}
所以我的问题是:如何将 android 应用程序连接到这个 websocket?
STOMP 是一种应用程序级协议,在 web sockets 之上使用。内置客户端很少支持这种协议,在你的情况下我不相信 Android 有类似的东西。
您很可能需要一个支持 STOMP 的库才能做到这一点。 如果您有兴趣,我是一个名为Krossbow的库的作者。
OkHttp、Scarlet 和 Ktor 不支持开箱即用的 STOMP(至少现在不支持),但是使用 Krossbow,您可以根据需要使用 Ktor 或 OkHttp 作为底层 web 套接字客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.