stomp nodejs不在connect上发送头

时间:2015-03-06 14:37:08

标签: javascript node.js websocket stomp

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

问题是应用程序没有发送我告诉它发送的标题。文档和示例无法更清楚地了解如何发送标题,因此我不知道为什么我没有在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');
};

这种连接很好,但标题似乎被忽略了。 任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:3)

好消息是,您确实将标题发送到服务器。坏消息是,使用像这样的DOC代码:

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对象。无论如何,使用你的代码我可以看到一个合适的框架:

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

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

我用于测试的是here