如何知道如果实例的http.服务器内节点已经在监听
How to know if instance of `http.Server` in node is already listening
我有一个http服务器和一段只需要在服务器侦听时运行的代码。为此,我像这样绑定到"listening"
事件:
server.on('listening', doSomething)
事情是,我的服务器可能已经在监听,然后事件"listening"
不会发出,我的代码不会运行…有办法知道服务器的状态吗?例如:
if (server.isListening() === true) doSomething()
else server.on('listening', doSomething)
编辑我当然可以(如建议在另一个类似的问题)尝试连接到该端口,看看是否有人在听。但这并不能证明我使用的特定实例是倾听。只是一些服务正在那里监听。
简单
if (server.listening) { # }
https://nodejs.org/api/net.html net_server_listening
精化
- 。服务器有一个
listening
属性,表示是否服务器正在监听 - http。服务器继承net。服务器
当使用http.createServer
实例时,address()
函数对服务器实例可用。这表明实际的服务器是否正在侦听和可用。
在服务器实例上调用listen()
之前,address()
返回null
,因为实例本身还没有侦听的地址。
一旦调用listen()
, address()
将返回一个对象。
var http = require('http');
var server = http.createServer();
console.log(server.address()); // This will be null because listen() hasn't been called yet
server.listen(3000, 'localhost', function() {
console.log('listening');
});
console.log(server.address()); // { address: '127.0.0.1', family: 'IPv4', port: 3000 }
总结如果server.address()
是null
,说明实例没有运行。
如果server.address()
返回一个对象,你的实例正在运行。
相关文章:
- 如何在AngularJS中监听点击事件,而不是触摸事件
- BackboneJS-监听嵌套的模型更改
- 在Firefox restartless插件中,当一个新窗口打开时,我如何运行代码(监听窗口打开)
- 监听touchend有时会触发移动点击事件
- 使用ajax的Django jquery.如何让jquery监听id's生成的表单
- JQuery监听点击并使用点击元素发出警报's href
- jQuery有没有,或者有没有jQuery插件,内置了监听CSS3动画事件的功能(例如animationEnd)
- 如何让Google Maps API v3监听dragend事件并在投递时填充表单字段
- 如何在angular js中监听dom就绪事件
- Phonegap:监听页面并关闭InAppBrowser返回index.html的简单方法
- React鼠标事件在没有监听它们的组件上触发
- 监听发布到网站的广告的新网址
- 我应该使用什么模式在 Node/JavaScript 中制作监听机器人
- 如何在具体化 CSS 中监听<选择>更改事件
- 如何将誓言令牌推送到本地存储或本地会话并监听存储事件?(SoundCloud Php/JS 错误解决方法)
- 当新行从应用程序插入到mysql表时,监听来自节点服务器js的事件
- 如何知道如果实例的http.服务器内节点已经在监听
- 无法运行节点js应用程序监听443
- 如何在react native firebase中监听单个子节点的变化
- 节点HTTP服务器监听并打开('open')事件