我正在使用StompClient(https://github.com/ShengHuaWu/StompClient)将我的iOS(swift 3)应用程序连接到Spring容器中托管的stomp套接字。
似乎从Web浏览器使用sockjs并连接到ws:/ server / topic_name时,它会自动将server_id和session_id添加到url(ws:// server / server_id / socket_id / topic_name)。
当我使用Swift StompClient时,似乎没有将这些附加项添加到路径中。
任何人都知道怎么解决这个问题?
答案 0 :(得分:1)
Sockjs设计用于浏览器,因为尚未在所有浏览器中支持WebSocket。您在上面提到的url是sockjs协议的一部分。
iOS具有对WebSocket的本机支持。所以你不需要依赖sockjs。有像这样的Stomp库你可以使用https://github.com/mobile-web-messaging/StompKit。
需要注意的一点是,如果您使用的是Spring容器,并且只要您在应用程序上下文中进行配置打击:
<websocket:stomp-endpoint path="/spring-websocket-portfolio/portfolio" allowed-origins="*">
<websocket:sockjs/>
</websocket:stomp-endpoint>
你应该连接到ws:// localhost / spring-websocket-portfolio / portfolio / websocket。