繁体   English   中英

如何使用本机 Android 客户端连接到 Spring STOMP websocket?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM