NodeJS网.套接字:"connect"与"ready"事件



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

当我打开到同一个unix套接字的两个连接时,我会遇到问题(尽管有原因(;由于未知的原因,有时它自始至终都很好;有时我没有得到任何data,但connect只为其中一个而被解雇。

我仍在尝试调试,但我深入研究了文档,并面临另一个问题。正如NodeJS文档(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)

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

  • immediately是什么意思?它是指synchronously吗?如果是,readyconnect之间有什么区别吗
  • 使用ready而不是connect来执行after-connection-established/opened任务有什么意义吗
  • 两者之间有什么区别

谢谢!

此事件是从net发出的,以确保不同API之间的一致性。请在此处查看原始提交:https://github.com/nodejs/node/commit/1c8149417a5dec9b2af056f306822b8a22a09706

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

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

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

最新更新