node.js - 使用自定义 header 测试 NodeJS socket.io

标签 node.js sockets testing cookies socket.io

我正在尝试编写简单的测试来测试我的 NodeJS socket.io 应用程序。问题是在握手阶段我确实需要某些值(两个 cookie 和 header )。这就是我现在拥有的:

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

我希望能够设置接受语言和 cookie,以便它们出现在握手中,从而可以通过握手属性进行访问。

在正常的浏览器请求中,浏览器会正确填充 header ,现在我想在测试阶段也这样做。

最佳答案

在使用正确的 Google 查询词成功命中后,我设法找到了更多信息。目前似乎无法使用当前的 socket.io 和 socket.io-client 实现。

几乎没有采用其他方法,但没有一种方法能够成功实现实际的封装。

更多信息:

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

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

关于node.js - 使用自定义 header 测试 NodeJS socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694030/

相关文章:

testing - 获取最新的 sakai 代码进行测试的推荐方法是什么?

node.js - 在 Meteor 1.0 中加载 NPM 包?

Node.js、mongo、promise - 将参数传递给 then 函数

python - 属性错误 : 'module' object has no attribute 'WebSocketApp'

c++ - 如何从 sockaddr 获取 IP 地址

javascript - Testcafe过滤功能

javascript - 无法在 mac 上的 Meanjs 现有项目中找到本地 grunt

node.js http.get block 未返回正确的结构

java - java中如何接收广播消息

android - Espresso - 设置 SeekBar