本人需要通过代码实现服务器打开关闭。 相关代码如下: var express = require(‘express’); var app = express(); var http = require(‘http’).Server(app); var io = require(‘socket.io’)(http); //打开服务器 server.prototype.openServer = function(){ http.listen(3001, function(){ console.log(‘listening on *:3001’); }); } //关闭服务器 server.prototype.stopServer = function(){ http.close(function(){ console.log(‘stop listening’); }) } 在这里我将打开和关闭服务器写成两个函数,方便调用。 但是关闭服务器代码是有问题的,当没有客户端连上服务器时,关闭服务器代码能正常工作。但当有客户端连上服务器时,http.close()并不执行。本人菜鸟一枚,不知道问题出在哪里,请求高手指点迷津,感激不尽!!
@yorkie 是的,我的需求是外部可通过调用这两个函数随时开启和关闭服务器,使用process.exit()会把进程中断,用.close()的话,如果有客户端连上服务器就不能关闭服务器,也尝试了在.close()之前用程序断开所以客户端与服务器的连接,但效果还是不理想,不晓得大牛有没有比较好的方法。
@Emma0809 https://github.com/mathrawka/express-graceful-exit 用这个,如果你想详细了解可以google一下:node.js close application gracefully,有很多介绍这个的文章