首页 > 解决方案 > NodeJS net.Socket:`connect`与`ready`事件

问题描述

今天我很难调试我的 NodeJS 代码的问题。

当我打开到同一个 unix 套接字的两个连接时遇到问题(尽管有原因);并且由于未知原因,有时它始终可以正常工作;有时我没有得到任何回报data,但connect只因其中一个而被解雇。

我仍在尝试调试,但我深入研究文档并面临另一个问题。正如 NodeJS Docs (12.x LTS) 所说:(大约net.Socket

# Event: 'connect'
Added in: v0.1.90
Emitted when a socket connection is successfully established. See net.createConnection().

# Event: 'ready'
Added in: v9.11.0
Emitted when a socket is ready to be used. Triggered immediately after 'connect'.

https://nodejs.org/docs/latest-v12.x/​​api/net.html

我想知道这是否是我应该寻找错误的地方:

谢谢!

标签: node.jssocketsipcunix-socket

解决方案


net为了跨不同 API 的一致性而发出此事件。在此处查看原始提交: https ://github.com/nodejs/node/commit/1c8149417a5dec9b2af056f306822b8a22a09706

它的创建是为了让开发人员在使用fsnet编码时的生活更轻松,这样他们就不必记住给定流实现的所有复杂细节。

在实践中,Node.js 套接字代码是这样做的:

self.emit('connect');
self.emit('ready');

推荐阅读