首页 > 解决方案 > NodeJS“如果在 Socket 发出 'data' 事件时没有侦听器,数据将丢失。”

问题描述

我正在使用 Net 模块在 NodeJS 中制作服务器。它如下所示:

const net = require('net');

server = new net.Server();
server.listen("{port: 80}");
server.on('connection', socket =>{
   socket.on("data", ()=>socket.write("Hey there!"));
}); 

问题是,当我收到对同一个客户的两个非常接近的请求时,只有第一个会得到“嘿!”。回复。

我从网络文档(https://nodejs.org/api/net.html#net_event_data)中读到的是“如果在 Socket 发出 'data' 事件时没有侦听器,则数据将丢失”。()=>socket.write("Hey there!")我是否丢失了第二个请求,因为当事件到达时我仍在写对第一个请求的响应?

如果是这种情况,当我为他人服务时,如何避免丢失“数据”事件?

标签: node.jssocketsevents

解决方案


推荐阅读