用代码实现nodejs关闭服务器

80 篇文章 0 订阅
11 篇文章 0 订阅
                用代码实现nodejs关闭服务器
发布于 2 年前 作者 Emma0809 9963 次浏览 最后一次编辑是 2 个月前

本人需要通过代码实现服务器打开关闭。相关代码如下: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()并不执行。本人菜鸟一枚,不知道问题出在哪里,请求高手指点迷津,感激不尽!!

9 回复

我的express是3.16.6版本,node是v0.10.26版本

跪求大神指点

process.exit(); :D 关得彻底…你把服务器关了,怎么再把它开启 ~

@Hi-Rube 这样的做法会让一些非冪等性(有状态)的请求中断执行,然后数据库就被搞乱啦,关闭服务器之前应该先确保停止服务、然后把剩下的请求处理完之后再down掉进程

是不是还要把socket关了?

@yorkie 对哦~ 但是我在想他要开启服务器,就必须连上服务器,但此时服务器又是关闭的,他这样做有何意义- -!

@yorkie 是的,我的需求是外部可通过调用这两个函数随时开启和关闭服务器,使用process.exit()会把进程中断,用.close()的话,如果有客户端连上服务器就不能关闭服务器,也尝试了在.close()之前用程序断开所以客户端与服务器的连接,但效果还是不理想,不晓得大牛有没有比较好的方法。

@wuzeru 恩,我尝试了在.close()之前用程序断开所以客户端与服务器的连接,但效果还是不理想。

@Emma0809https://github.com/mathrawka/express-graceful-exit 用这个,如果你想详细了解可以google一下:node.js close application gracefully,有很多介绍这个的文章




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值