摘要:为了解决工具起多个服务的时候端口被占用的情况。分享研究的代码片段。
为了解决 ssr 工具 起多个服务的时候端口被占用的情况。分享研究的代码片段。
// 检测port是否被占用 function probe(port, callback) { var server = net.createServer().listen(port) var calledOnce = false var timeoutRef = setTimeout(function () { calledOnce = true callback(false,port) }, 2000) timeoutRef.unref() var connected = false server.on("listening", function() { clearTimeout(timeoutRef) if (server) server.close() if (!calledOnce) { calledOnce = true callback(true,port) } }) server.on("error", function(err) { clearTimeout(timeoutRef) var result = true if (err.code === "EADDRINUSE") result = false if (!calledOnce) { calledOnce = true callback(result,port) } }) }
使用例子:
function server(_port){ var pt = _port || __port; probe(pt,function(bl,_pt){ // 端口被占用 bl 返回false // _pt:传入的端口号 if(bl === true){ // ssr(_pt) server = http.createServer(connListener); server = server.listen(parseInt(_pt, 10)); console.log(" Static file server running at" + " => http://localhost:" + _pt + " "); }else{ server(_pt+1) } }) }
关注公众号
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/91535.html
摘要:如果一个即时定时器是被一个正在执行的回调排入队列的,则该定时器直到下一次事件循环迭代才会被触发。参数描述在事件循环的当前回合结束时要调用的函数。事件轮询随后的调用,会在任何事件包括定时器之前运行。 系列文章 Nodejs高性能原理(上) --- 异步非阻塞事件驱动模型Nodejs高性能原理(下) --- 事件循环详解 前言 终于开始我nodejs的博客生涯了,先从基本的原理讲起.以前写...
摘要:前言使用过进行项目开发的同学,一定知道或者使用过脚手架,他能够很好的搭建项目结构和工程,让我们能够把足够的精力放在业务开发上。对象提供一系列属性,用于返回系统信息返回当前进程的命令行参数数组。 前言 使用过 vue 进行项目开发的同学,一定知道或者使用过 vue-cli 脚手架,他能够很好的搭建项目结构和工程,让我们能够把足够的精力放在业务开发上。也正是因为这样,很多时候我们会因为项目...
摘要:当这些隐藏于幕后的工作者处理完委托给它们的事件后,它们会触发绑定在这些事件上的回调函数去通知。习惯回调是一个单线程事件驱动的运行环境,也就是说,在里,任何事都是对事件的响应。 原文地址:https://codeburst.io/the-only-nodejs-introduction-youll-ever-need-d969a47ef219 作者:vick_onrails 摘要:这...
摘要:前言是一个微服务工具集,它赋予系统易于连续构建和更新的能力。这个对象既包含某个微服务所需要调取另一个微服务的特征,同时也包含传参。和微服务发现有些类似不过是用模式代替,目前为止模式是完全可以实现服务发现功能,但是否更加灵活还有待去挖掘。 前言 seneca是一个nodejs微服务工具集,它赋予系统易于连续构建和更新的能力。下面会逐一和大家一起了解相关技术入门以及实践。 这里插入一段硬广...
摘要:每家公司在前端项目发布体系可能不尽相同,本篇文章仅仅介绍袋鼠云的前端发布体系,希望能对大家能有所启发。目前袋鼠云采用的是前后端分离的方式,但是开发中还是比较依赖后端的,接口数据还不是很完善。 前言 在目前的大趋势下,前端和后端解耦已经是一个业界的趋势。前端和后端一旦解耦之后,前端的项目和后端的项目便可以自己发布,互不影响。这样极大地提高工作效率,免去了很多互相等待的时间。每家公司在前端...
阅读 1164·2021-09-10 10:51
阅读 896·2019-08-30 15:53
阅读 2724·2019-08-30 12:50
阅读 976·2019-08-30 11:07
阅读 1990·2019-08-30 10:50
阅读 3598·2019-08-29 18:47
阅读 1308·2019-08-29 18:44
阅读 1599·2019-08-29 17:01