首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring WebSocket不发送连接后的队列后缀。

Spring WebSocket不发送连接后的队列后缀。
EN

Stack Overflow用户
提问于 2014-11-18 10:18:45
回答 2查看 1.3K关注 0票数 1

我的服务器端配置如下:

代码语言:javascript
复制
<websocket:message-broker application-destination-prefix="/chat">
        <websocket:stomp-endpoint path="/connect">
          <websocket:sockjs/>
        </websocket:stomp-endpoint>
        <websocket:simple-broker prefix="/broadcast/"/>
</websocket:message-broker>

客户端代码:

代码语言:javascript
复制
var stompClient = null;
var socket = new SockJS('/connect');
stompClient = Stomp.over(socket);
stompClient.connect('', '', function (frame) {
    console.log(frame); // Inside frame object queue-suffix not sended
    var suffix = frame.headers['queue-suffix'];
    stompClient.subscribe('/broadcast/message'+suffix, function(calResult){
      console.log(calResult);
    });
}, function (error) {
    console.log(error);
});

连接成功,但在连接框架对象中找不到队列后缀。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-19 11:37:43

我正在使用基于注释的信任和消息传递类。我还使用了SpringBoot 1.2.0.RC1,它引入了Spring4.1.2.RELEASE。

因此,假设我设置了websockets & STOMP,如下所示:

代码语言:javascript
复制
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketProdConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
       stompEndpointRegistry.addEndpoint("/inoutboard").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
       registry.setApplicationDestinationPrefixes("/app");
       registry.enableSimpleBroker("/topic", "/queue");
    }
 }

然后,我的控制器中的发送/接收方法的一个例子是

代码语言:javascript
复制
@Controller
public class InOutBoardController {
...
    @MessageMapping("/user-status-refresh")
    @SendToUser(value = "/queue/user-status-refresh", broadcast = false)
    public UserStatusUpdateMessage[] userStatusRefresh() {
        ...
    }
}

当我在客户机中得到我的消息时,它们的主题是“/user/status 5074/queue/user-status value”。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-11-19 14:13:56

我们确实在早期的里程碑中包含了这样的头(我认为一直到4.0 RC1 ),但是“队列后缀”现在已经封装在服务器端了。请参阅上面尼克的示例和docs Spring WebSocket is not send queue-suffix after connection

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26991832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档