使用expresso和socket.io-client来测试服务器,但测试过程不会停止

时间:2011-09-05 21:43:25

标签: node.js socket.io

我想使用socket.io-client来测试我的socket.io服务器。我尝试使用以下文件运行expresso。数据在控制台中打印。然后进程挂起,beforeExit永远不会执行,直到我用Ctrl-C终止进程。我想在从服务器完成回调之后,应调用beforeExit然后进程停止。但它不是那样的,为什么?

var assert = require('assert');
exports.testAsync = function(beforeExit){
    var io = require('socket.io-client');
    var socket = io.connect('http://localhost:8000');
    socket.on('connect', function(err) {
        assert.isUndefined(err);
        socket.emit('set nickname', 'apple', function(data) {
        assert.equal(data, 'ok');
            console.log(data);
        });
    });
    beforeExit(function(){
        console.log("exit");
        socket.disconnect();
    });
};

1 个答案:

答案 0 :(得分:0)

奇怪。我正在使用Expresso 0.9.2,并且您编写的代码与预期完全相同。但是,当然,我没有运行任何服务器。

这是您的测试文件的全部内容吗?