当前位置:

首页 > 编程开发 > Node.js在Linux上的网络通信

Node.js在Linux上的网络通信

Node.js基于ChromeV8引擎,可在Linux上搭建Web、API及实时通信服务。内置http模块快速创建基础服务器,Express简化路由与中间件,WebSocket实现双向低延迟通信,net模块提供底层TCP能力。

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 等更成熟的方案,但理解这些基础模块,再学框架会轻松很多。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Linux
相关文章 更多
linux删除用户与用户组的方法及命令教程
linux删除用户与用户组的方法及命令教程

掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,