繁体   English   中英

适用于WebSocket Message Broker的Android客户端

[英]Android Client for WebSocket Message Broker

我需要在Android应用程序中管理单个WebSocket连接。 为此,我实现了一个Web应用程序,其中使用Spring作为快速入门来设置WebSocket Message Broker。

问题是我无法在Android应用程序中建立连接。 我正在使用Autobahn Android ,但是无法连接订阅和发布主题(例如带有STOMP的SockJS)。

服务器(春季):

<websocket:message-broker application-destination-prefix="/app"> <websocket:stomp-endpoint path="/ws"></websocket:stomp-endpoint> <websocket:simple-broker prefix="/topic"/> </websocket:message-broker>

@Controller
public class MessageController {
    @MessageMapping("/ws")
    @SendTo("/topic/poc")
    public MyEntity proofOfConcept(String message) throws Exception {
        return new MyEntity(message);
    }
}

客户端(Android高速公路):

final String wsuri = "ws://" + HOSTNAME + ":" + PORT + "/myapp/ws";
mConnection.connect(wsuri, new Wamp.ConnectionHandler() {
     @Override
     public void onOpen() {
        mConnection.subscribe("/myapp/ws/topic/poc", MyEntity.class, new Wamp.EventHandler() {
            @Override
            public void onEvent(String topicUri, Object event) { }
        });
     }
     @Override
     public void onClose(int code, String reason) {
        // ERROR: Could not connect to /HOSTNAME...
     }
});

我设法使用spring的简单处理程序而不是消息代理进行连接,但这限制了我只能“监听”每个连接的一个端点...有人可以帮我吗?

AutobahnAndroid实现WebSocket和WAMP ,而不是STOMP。 与STOMP不同,WAMP提供发布和订阅以及远程过程调用。

要使用WAMP,您将需要一个WAMP路由器。 您可以在此处找到WAMP的客户端和路由器实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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