Nodejs中关于http中connection事件
Nodejs中关于http中connection事件
看文档里有这么一句描述: Event: ‘connection’ 事件:'connection’ function (stream) { }
When a new TCP stream is established. stream is an object of type net.Stream. Usually users will not want to access this event. The stream can also be accessed at request.connection.
当一个新的TCP流建立后触发此事件。stream是一个net.Stream类型的对象,通常用户不会使用这个事件。参数stream也可以在request.connection中获得。
看文字的意思就是说有一个连接就会进入connection事件,可是在代码里应该如何写呢,不是很明白。哪个高人能给贴个列子
Node.js 中关于 HTTP 中 connection
事件
在 Node.js 的 HTTP 模块中,connection
事件可以用来处理新的 TCP 连接。虽然大多数情况下我们不需要直接操作这个事件,但它在某些特定场景下可能会非常有用,比如需要对底层的网络连接进行更细粒度的控制。
示例代码
下面是一个简单的例子,展示了如何使用 connection
事件:
const http = require('http');
// 创建一个 HTTP 服务器
const server = http.createServer();
// 监听 connection 事件
server.on('connection', (stream) => {
console.log('New TCP connection established.');
// 可以在这里添加一些处理逻辑,例如记录连接信息
stream.on('data', (data) => {
console.log(`Received data: ${data}`);
});
stream.on('end', () => {
console.log('Connection closed.');
});
});
// 绑定服务器到指定端口
server.listen(3000, () => {
console.log('Server listening on port 3000');
});
解释
-
创建 HTTP 服务器:
const server = http.createServer();
使用
http.createServer()
方法创建一个 HTTP 服务器实例。 -
监听
connection
事件:server.on('connection', (stream) => { console.log('New TCP connection established.'); });
使用
server.on('connection', callback)
方法来监听connection
事件。每当一个新的 TCP 连接被建立时,这个回调函数会被调用,并传入一个stream
对象。 -
处理连接数据:
stream.on('data', (data) => { console.log(`Received data: ${data}`); });
在
connection
事件的回调函数中,你可以监听data
事件来处理从客户端发送的数据。 -
绑定服务器到端口:
server.listen(3000, () => { console.log('Server listening on port 3000'); });
最后,使用
server.listen(port, callback)
方法将服务器绑定到指定的端口(例如 3000),并启动服务器。
通过这种方式,你可以在 Node.js 应用程序中监听和处理 HTTP 服务器上的新连接。希望这个示例对你有所帮助!
基于事件的,使用http.on('connection');
来监听
在Node.js中,http.Server
对象会触发 'connection'
事件,每当有新的TCP连接建立时,该事件就会被触发。这个事件可以用来处理底层的TCP连接,但大多数情况下,我们更倾向于直接处理HTTP请求。
以下是一个简单的例子,展示了如何监听 'connection'
事件,并打印出相关的TCP流信息:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
server.on('connection', (stream) => {
console.log('New connection established.');
// 你可以在这里对stream进行一些操作
stream.on('end', () => {
console.log('Connection ended.');
});
});
server.listen(3000, () => {
console.log('Server running at http://127.0.0.1:3000/');
});
在这个例子中,我们创建了一个HTTP服务器,监听3000端口。每当有新的连接建立时,'connection'
事件会被触发,传入的 stream
参数表示新的TCP连接。我们可以在这个事件处理器中添加一些逻辑来处理这个连接。
需要注意的是,'connection'
事件更多地用于处理底层TCP连接的细节,而不是HTTP请求本身。如果你只是想处理HTTP请求,那么通常不需要直接处理这个事件,而是直接在 http.createServer
的回调函数中处理请求即可。