gpt4 book ai didi

Swift StompClient 与 SockJS 在连接期间的行为不一致

转载 作者:行者123 更新时间:2023-11-28 15:53:23 24 4
gpt4 key购买 nike

我正在使用 StompClient ( https://github.com/ShengHuaWu/StompClient ) 将我的 iOS (swift 3) 应用程序连接到 Spring 容器中托管的 stomp 套接字。

似乎在从网络浏览器使用 sockjs 并连接到 ws:/server/topic_name 时,它​​会自动将 server_id 和 session_id 添加到 url (ws://server/server_id/socket_id/topic_name)。

当我使用 Swift StompClient 时,它似乎没有将这些额外的项目添加到路径中。

有人知道如何解决这个问题吗?

最佳答案

Sockjs 专为在浏览器中使用而设计,因为并非所有浏览器都支持 WebSocket。你上面提到的url是sockjs协议(protocol)的一部分。

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。

关于Swift StompClient 与 SockJS 在连接期间的行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42080514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com