如何在sockjs-STOMP上禁用调试消息

J.R*_*.R. 44 javascript stomp socks websocket

我有以下情况:

 var options = {
        protocols_whitelist : [ "websocket", "xhr-streaming", "xdr-streaming", "xhr-polling", "xdr-polling", "iframe-htmlfile", "iframe-eventsource", "iframe-xhr-polling" ],
        debug : false
    };

    var socket = new SockJS("/mmyurl/",undefined,options);
    var stompClient = Stomp.over(socket);
    stompClient.connect({
        company : "XXXXX"
    }, function(frame) {
        stompClient.subscribe('/topic/mytopic', function(message){ 
            var myitem = JSON.parse(message.body);

        });
Run Code Online (Sandbox Code Playgroud)

一切正常,问题是在javascript控制台上充满了这样的调试消息:

<<< MESSAGE
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:o6g660dt-113
destination:/topic/mytopic
content-length:411
Run Code Online (Sandbox Code Playgroud)

我想禁用这些消息.

我试图改变一些选项,并试图简单地注册:

var socket = new SockJS("/mmyurl/");
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

有没有办法禁用调试消息?

任何帮助表示赞赏

J.R*_*.R. 82

好的,我找到了解决方案.

我添加了这段代码:

stompClient.debug = null
Run Code Online (Sandbox Code Playgroud)

这样,禁用了调试功能.

  • 对于其他任何人来说,文档(http://jmesnil.net/stomp-websocket/doc/)声明您可以将client.debug设置为任何函数,并且该函数将随每条消息一起运行.因此,除了能够将调试设置为"null"之外,您还可以将其更改为任何函数来管理您自己的调试(通过GET变量或您想要的任何内容设置它) (15认同)
  • 它应该设置为一个不执行任何操作的函数。当前的 StompJS 版本不会检查是否设置了调试,它只会尝试执行它。当将 debug 设置为 null 时,会抛出错误。 (2认同)

Pau*_*ulB 19

我尝试了JR的答案,但开始收到错误(使用redux sagas) - 将调试更改为空函数...

stompClient.debug = () => {};
Run Code Online (Sandbox Code Playgroud)

  • 或`stompClient.debug = f =&gt; f;`(我发现这更容易输入) (2认同)