如何在socket.io 1.0中关闭服务器?

时间:2014-05-30 17:02:28

标签: node.js websocket socket.io socket.io-1.0

有这种情况,但它们适用于以前版本的库。似乎代码已经改变了。

我像这样实例化一个套接字:

this.socketLib || (this.socketLib = require('socket.io'));
this.socket = this.socketLib.listen(this.port);

在对象的其他地方,我有一个近距离的功能。我已尝试以下方法关闭套接字:

this.socket.close() # TypeError: Object #<Server> has no method 'close'
this.socket.server.close() #  TypeError: Object #<Server> has no method 'close'
this.socket.server.disconnect() #  TypeError: Cannot call method 'disconnect' of undefined
this.socket.disconnect() # TypeError: Object #<Server> has no method 'disconnect'
this.socket.io.engine.close() # TypeError: Cannot read property 'engine' of undefined

代码库中出现disconnect,但它们似乎适用于客户端:(link)。基本上close也是如此。或者我没有看到它。

我已经在对象中进行了调试和调整,但未找到任何关闭服务器的内容。

如何关闭新代码库中的套接字服务器?我需要关闭它进行集成测试(第一次测试运行,第二次运行得到EADDRINUSE错误)。我试图写一个关闭函数,我可以在mocha中的after函数中运行。如果我在没有--watch的情况下运行它们,我的测试就会通过它只是连续多次运行失败。

1 个答案:

答案 0 :(得分:0)

希望它有所帮助: - )

socket.conn.close ();

如果你这样做,你将得到无数的"a user connected"

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function(socket){
    console.log('a user connected');

    socket.conn.close ();

        ....
});