Websockets + SockJs:使用 stompclient 时,ConnectCallback 未在客户端执行

Posted

技术标签:

【中文标题】Websockets + SockJs:使用 stompclient 时,ConnectCallback 未在客户端执行【英文标题】:Websockets + SockJs: ConnectCallback not executing on client side when using stompclient 【发布时间】:2014-09-26 06:52:58 【问题描述】:

我的问题是:

        $scope.socket = new SockJS("ws/ws"); 
        $scope.stompClient = Stomp.over($scope.socket); // Connect to
        $scope.stompClient.connect("test", "test", connectCallback, errorCallback);


        function connectCallback () 
        $scope.stompClient.subscribe('/testurl',someFunc());
        

这里我的connectCallback 方法在调用connect 时没有执行。 errorCallback 均未执行。尽管套接字已打开,但它只是跳过了这一行,但我还想在 connectCallback 定义中订阅。

你能建议它可能是什么问题吗?

【问题讨论】:

我有一个用于 RabbitMQ 的 php、RabbitMQ、STOMP 插件示例。 【参考方案1】:

我尝试使用带有插件 STOMP 的 RabbitMQ

https://gist.github.com/tineo/f4e1f977d78d0db438c8

我使用 PHP 来创建队列、频道、交换

https://gist.github.com/tineo/9b25444fa5095f2ef225

也许你可以用 Spring 重用我的文件。

【讨论】:

以上是关于Websockets + SockJs:使用 stompclient 时,ConnectCallback 未在客户端执行的主要内容,如果未能解决你的问题,请参考以下文章

将 Spring websockets (sockJS + Stomp) 与基于令牌的身份验证 (JWT) 一起使用的最佳方法

Spring with STOMP over SockJS 和 Tomcat 未升级到 Websockets

Spring(Websockets / REST / Security)、JWT 和 Sockjs(Stomp)集成

angular2中的WebSockets

Spring WebSocket 使用 SockJS 连接到不同的域

带有 Sockjs 和 Spring 4 但没有 Stomp 的 WebSocket