【问题标题】:Can I add request parameter to SockJs constructor so that it can be send to server我可以将请求参数添加到 SockJs 构造函数以便它可以发送到服务器吗
【发布时间】:2015-06-29 14:35:04
【问题描述】:

我将我的 SockJs URL 初始化为

var protocols = ['xhr-polling', 'xdr-polling',  'xdr-streaming', 'xhr-streaming'];
var options = {protocols_whitelist: protocols, debug: true,server:tets};
_ws = new SockJS(url, null, options);

我想发送一个请求参数,例如 somesite/sockjs/info?someparam=tets"

有可能吗?文档of SockJs 指的是选项是可以具有键值的映射,但我不确定在这里使用什么键。

我在服务器上验证了 SockJs 发送过来的 URL,它是

http://http_backend/cecobrowsega-3.0.0.0.31/sockjs/testapp/620/4ydem52f/xhr?null 

所以在没有请求参数的情况下,它附加了一个空值,似乎有一种方法可以通过请求参数发送!

【问题讨论】:

    标签: spring-websocket sockjs


    【解决方案1】:

    它在最新的 sock js 客户端中可用。在这里讨论https://github.com/sockjs/sockjs-client/issues/72

    我们可以将查询字符串与连接 URL 一起传递,语法与任何 HTTP 调用相同

    【讨论】:

      【解决方案2】:

      对于需要代码示例的人:

        var socket = new SockJS('http://localhost/ws?token=AAA');
        var stompClient = Stomp.over(socket);
        stompClient.connect({}, function(frame) {
            stompClient.subscribe('/topic/echo', function(data) {
              // topic handler
            });
          }
        }, function(err) {
          // connection error
        });
      

      现在所有与 websocket 相关的请求都会有参数“?token=AAA”

      http://localhost/ws/info?token=AAA&t=1446482506843

      http://localhost/ws/515/z45wjz24/websocket?token=AAA

      使用 SockJS 1.0.3 测试

      【讨论】:

      • 好的,但是可以让它动态吗?我有一张有效期为几秒钟的票,因此进一步调用需要重新计算参数
      猜你喜欢
      • 2019-09-12
      • 1970-01-01
      • 2014-11-05
      • 2010-09-27
      • 2019-01-16
      • 2021-01-20
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多