Node.js EventEmitter 写tcp 客户端服务模块代码
时间: 2024-12-19 20:28:47 浏览: 47
Node.js 中的 `EventEmitter` 是一个核心特性,它允许创建事件驱动的应用程序,非常适合于客户端服务模块,尤其是处理网络通信。下面是一个简单的 TCP 客户端服务模块示例,使用 `net` 模块配合 `EventEmitter` 来监听连接、数据接收和关闭等事件:
```javascript
const net = require('net');
class TcpClientService {
constructor(host, port) {
this.client = net.connect({ host, port });
this.client.on('connect', () => this.emit('clientConnected'));
this.client.on('data', (data) => this.handleData(data));
this.client.on('end', () => this.disconnect());
}
handleData(data) {
console.log(`Received data: ${data}`);
// 根据需要处理接收到的数据
this.emit('dataReceived', data);
}
disconnect() {
this.client.end();
this.emit('connectionClosed');
}
send(message) {
this.client.write(message);
}
emit(eventName, data) {
this.emit(eventName, data); // 自带的 EventEmitter 方法,可以触发其他关联的事件处理函数
}
}
// 使用示例
const clientService = new TcpClientService('localhost', 8080);
clientService.on('clientConnected', () => console.log('Connected to server'));
clientService.on('dataReceived', (data) => console.log(`Received message: ${data}`));
clientService.send('Hello Server!');
```
在这个例子中,`TcpClientService` 类模拟了一个TCP客户端,连接服务器后会触发 `clientConnected` 事件,收到数据时触发 `dataReceived` 事件,并在断开连接时触发 `connectionClosed` 事件。
阅读全文
相关推荐

















