有这种情况,但它们适用于以前版本的库。似乎代码已经改变了。
我像这样实例化一个套接字:
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
的情况下运行它们,我的测试就会通过它只是连续多次运行失败。
答案 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 ();
....
});