stomp nodejs 在连接时不发送 header

stomp nodejs not sending header on connect

我有一个超级简单的 nodejs 应用程序,它使用 stomp 连接到使用 websockets 的服务器。

问题是应用程序没有发送我告诉它发送的 headers。关于如何发送 header 的文档和示例再清楚不过了,所以我不知道为什么我在 wireshark 中看不到我的。

var Stomp = require('stompjs');
var client = Stomp.overWS('ws://localhost:8080/web/wsendpoint');

var headers = {
      login: 'mylogin',
      passcode: 'mypasscode',
      // additional header
      'Auth-Token': 'token'
    };

client.connect(headers, connectCallback);

var connectCallback = function(frame) {
  alert('connected');
};

这连接正常,但 header 似乎被忽略了。 有人知道这是为什么吗?

好消息是,您正在将 headers 发送到服务器。坏消息是,使用 DOC-proper 这样的代码:

client.connect(headers, connectCallback, errorCallback);

我收到了:

11 Mar 11:34:07 - server is connected to 127.0.0.1:8080
11 Mar 11:34:07 - {
    command: 'CONNECT',
    header: {
       login: '[object Object]',
       passcode: 'undefined',
       'accept-version': '1.1,1.0',
       'heart-beat': '10000,10000' },
    body: '' }

清楚地表明,stompjs 在登录字段中发送 headers object。无论如何,通过你的代码,我可以看到一个合适的框架:

{ command: 'CONNECT',
  header: 
  { login: 'mylogin',
    passcode: 'mypasscode',
    'accept-version': '1.1,1.0',
    'heart-beat': '10000,10000' },
  body: '' }

所以很可能 - 我猜 - 有一个好的代码,你正在看你的 wireshark 中错误的(部分)包。一些线索可能在 here.

我测试用的是here.