2015-04-17 4 views
1

Я пытаюсь написать простой тест, чтобы протестировать приложение NodeJS socket.io. Проблема заключается в том, что на этапе рукопожатия мне требуются определенные значения (два файла cookie и заголовки). Это то, что я теперь есть:Test NodeJS socket.io с пользовательскими заголовками

var options = { 
     transports: ['websocket'], 
     'force new connection': true, 
     headers: {'accept-langauge': 'foo'} 
}; 

it("send data", function(done) { 
    var client = io.connect('http://localhost:3000', options); 

    client.once("connect", function(s) { 
     expect(s.handshake).to.not.be(undefined); 
     expect(s.handshake.headers).to.be.an('object'); 
     expect(s.handshake.headers['accept-language']).to.be('en'); 

     client.once("send_premise_to_snet", function(id) { 
      id.should.equal("123"); 

      client.disconnect(); 
      done(); 
     }); 

     client.emit("send_data", 123); 
    }); 
}); 

Я хотел бы быть в состоянии установить Accept-Language и печенье так, что они будут появляться в рукопожатии, и, таким образом, будут доступны через рукопожатия собственности.

В обычном браузере браузер запросов правильно заполняет заголовки, и теперь я хотел бы сделать это и на этапе тестирования.

+0

Каков ваш вопрос? У вас возникли проблемы с проверкой заголовков рукопожатия с сервера или вы спрашиваете, как отправлять правильные заголовки с сервера? – gregnr

+0

Вопрос: как передать заголовки при выполнении «client = io.connect». Таким образом, я должен уметь читать их из данных рукопожатия. Обратите внимание, что io.connect выполняется в узле unitsest. – jtiai

ответ

0

После успешного попадания в соответствующие слова запроса Google мне удалось узнать больше информации. Кажется, что в настоящее время невозможно выполнить текущие реализации socket.io и socket.io-client.

Существует несколько альтернативных подходов, но ни один из них не смог пройти к фактическим пакетам.

Для получения дополнительной информации:

https://github.com/Automattic/socket.io/issues/2036

https://github.com/Automattic/socket.io-client/issues/648