OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

判断Node.JS TCP Socket当前连接状态


分享到


分类 JS学习   关键字 Node.JS   发布 ourjs  1534353061812
注意 转载须保留原文链接,译文链接,作者译者等信息。  
Node.JS 官方文档中并没有获取当前 socket 连接状态的说明。不过打印 socket 可以看出,可以通过 socket._handle 属性来判断,当socket end或 destroy后,此属性被设为null。

当建立tcp连接后  _handle 为 tcp 对象:

Socket {
  connecting: false,
  _hadError: false,
  _handle:
   TCP {
     bytesRead: 0,
     _externalStream: {},
     fd: -1,
     reading: true,
     owner: [Circular],
     onread: [Function: onread],
     onconnection: null,
     writeQueueSize: 0 },
  _parent: null,
  _host: null,
  _readableState:
   ReadableState {
     objectMode: false,
     highWaterMark: 16384,
     buffer: BufferList { head: null, tail: null, length: 0 },
     length: 0,
     pipes: null,
     pipesCount: 0,
     flowing: true,
     ended: false,
     endEmitted: false,
     reading: false,
     sync: false,
     needReadable: true,
     emittedReadable: false,
     readableListening: false,
     resumeScheduled: false,
     defaultEncoding: 'utf8',
     ranOut: false,
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: true,
  domain: null,
  _events:
   { end: [ [Object], [Function: onEnd] ],
     finish: [Function: onSocketFinish],
     _socketEnd: [Function: onSocketEnd],
     connect: [ [Function: onConnect] ],
     close: [Function: onClose],
     data: [Function: onData],
     drain: [Function: onDrain],
     error: [Function: onError],
     lookup: [Function: onLookup],
     timeout: [Function: onTimeout] },
  _eventsCount: 10,
  _maxListeners: undefined,
  _writableState:
   WritableState {
     objectMode: false,
     highWaterMark: 16384,
     needDrain: false,
     ending: false,
     ended: false,
     finished: false,
     decodeStrings: false,
     defaultEncoding: 'utf8',
     length: 0,
     writing: false,
     corked: 0,
     sync: true,
     bufferProcessing: false,
     onwrite: [Function],
     writecb: null,
     writelen: 0,
     bufferedRequest: null,
     lastBufferedRequest: null,
     pendingcb: 0,
     prefinished: true,
     errorEmitted: false,
     bufferedRequestCount: 0,
     corkedRequestsFree: CorkedRequest { next: null, entry: null, finish: [Function] } },
  writable: true,
  allowHalfOpen: false,
  destroyed: false,
  _bytesDispatched: 0,
  _sockname: null,
  _pendingData: null,
  _pendingEncoding: '',
  server: null,
  _server: null,
  read: [Function],
  _consuming: true,
  _idleNext: null,
  _idlePrev: null,
  _idleTimeout: -1,
  _peername: null }

当 close 或者未连接状态时, _handle 为 null

Socket {
  connecting: false,
  _hadError: false,
  _handle: null,
  _parent: null,
  _host: null,
  _readableState:

社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. Git服务器搭建,多用户组权限控制配置,添加新用户密码登陆
  2. 设置select元素中option的默认值
  3. Node.JS用Path将相对路径转为绝对路径
  4. 用JavaScript将input/textarea中的文本复制粘贴到剪切板
  5. JavaScript用Number/parseInt/parseFloat判断字符串是否为数字
  6. Node.JS命令行或批处理中更改Linux用户密码
  7. 上海行业工资排名:产品经理一骑绝尘,前端排名第二?
  8. JavaScript中新建一个带全局变量参数的new Function动态函数
  9. 用JavaScript实现node.js中的path.join方法
  10. 用 OnceAir 搭建个人Git/Svn/照片备份服务器,每年电费7块钱

 相关阅读 - JS学习
  1. Node.JS进程间通讯的几种方法:Redis Publish/Subscribe 和 UDP Socket
  2. 用JavaScript实现node.js中的path.join方法
  3. JavaScript中新建一个带全局变量参数的new Function动态函数
  4. 设置select元素中option的默认值
  5. JavaScript用Number/parseInt/parseFloat判断字符串是否为数字
  6. 用JavaScript将input/textarea中的文本复制粘贴到剪切板
  7. Node.JS用Path将相对路径转为绝对路径
  8. JS动态滑动切换到页面指定位置
  9. 如何通过网页、客户端、手机APP、路由器查找OnceAir NAS网盘的内网访问地址
  10. JavaScript用new Image实现内网服务器端口扫描

 关键字 - Node.JS
  1. 提高NodeJS网站的安全性:Web服务器防黑客攻击技巧
  2. Node.JS用Socket实现FTP Server服务器和Client客户端
  3. [译]Node.js 框架比较: Express vs. Koa vs. Hapi
  4. Express入门教程:一个简单的博客
  5. 是什么让Node.js比Java更快?为什么NodeJS这么快?
  6. 使用Node.JS批量查找替换目录下文本文件中图片地址内容
  7. 判断Node.JS TCP Socket当前连接状态
  8. Node.JS进程间通讯的几种方法:Redis Publish/Subscribe 和 UDP Socket
  9. Node.JS命令行或批处理中更改Linux用户密码
  10. Node.JS用Path将相对路径转为绝对路径

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号