2015-03-06 4 views
1

У меня есть супер простое приложение nodejs, использующее stomp для подключения к серверу с помощью websockets.stomp nodejs не отправляет заголовок на соединение

Проблема заключается в том, что приложение НЕ отправляет заголовки, которые я говорю ему, чтобы отправить. Документация и примеры не могли быть более ясными о том, как отправить заголовок, поэтому я понятия не имею, почему я не вижу шахты в wirehark.

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'); 
}; 

Это соединение прекрасно, но заголовки, похоже, игнорируются. У любого есть идея, почему это так?

ответ

2

Хорошей новостью является то, что вы отправляете свои заголовки на сервер. Плохая новость в том, что с 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.

+0

Ну, я сделал поиск заголовков в захваченных пакетах без везения. Поиск URL-адреса является успешным, однако поиск 'login', 'passcode' или 'Auth-Token' не дает никаких результатов. – wybourn

+0

Попробуйте выполнить поиск 'CONNECT' в содержимом пакетов, так как этот клиент команды отправляет сервер для переговоров. Заголовки несколько строк после этого, все еще в содержимом пакета, и потому что вы, кажется, правильно подключаетесь, этот пакет был отправлен точно, и вы должны его найти. – yergo

Смежные вопросы