Node.js 是基于 Chrome V8 引擎的 Ja vaScript 运行时,让服务端也能跑 Ja vaScript 代码。在 Linux 上,用它搭建网络应用——Web 服务器、API 服务器、实时通信服务器——都非常顺手。下面几个方向,基本覆盖了日常开发的核心场景。

Node.js在Linux上的网络通信

先从最基础的开始。Node.js 内置了 http 模块,几行代码就能跑起一个 Web 服务器,不需要任何第三方依赖。

const http = require('http');
const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
});
server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

当然,真实项目里很少直接用原生模块写路由——那样太折腾了。这时候就该 Express.js 出场了。它帮我们把路由、中间件、请求处理都封装得干净利落。

先安装依赖:

npm install express

然后写一个简单的服务器

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

接下来聊一聊实时通信。如果应用需要双向、低延迟的数据交换(比如聊天、推送通知),WebSocket 是首选方案。Node.js 生态里 ws 库是主流选择。

安装:

npm install ws

一个简单的服务端与客户端示例:

// server.js
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 3000 });

wss.on('connection', (ws) => {
  ws.on('message', (message) => {
    console.log(`Received message: ${message}`);
    ws.send(`You sent: ${message}`);
  });
});
// client.js
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:3000');

ws.on('open', () => {
  ws.send('Hello Server!');
});

ws.on('message', (message) => {
  console.log(`Received message: ${message}`);
});

最后,别忘了 net 模块——它提供了底层的 TCP 通信能力。如果你需要自定义协议、或者跟其他非 HTTP 服务交互,TCP 是最灵活的方式。

// server.js
const net = require('net');
const server = net.createServer((socket) => {
  socket.write('Hello from server!\n');
  socket.on('data', (data) => {
    console.log(`Received message: ${data}`);
    socket.write(`You sent: ${data}`);
  });
});
server.listen(3000, () => {
  console.log('Server listening on port 3000');
});
// client.js
const net = require('net');
const client = net.createConnection({ port: 3000 }, () => {
  console.log('Connected to server');
  client.write('Hello from client!');
});
client.on('data', (data) => {
  console.log(`Received message: ${data}`);
});

这几个示例基本覆盖了 Linux 上 Node.js 网络通信的主流场景。实际开发时,根据需求选对工具就好——比如高并发 REST API 用 Express,实时推送用 WebSocket,底层协议用 TCP。当然,社区里还有 Koa、Fastify、Socket.IO 等更成熟的方案,但理解这些基础模块,再学框架会轻松很多。

本文转载于:https://www.yisu.com/ask/71448674.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。