Nodejs项目前后端通信一般用什么通信方式

发布于 1周前 作者 eggper 来自 nodejs/Nestjs

我在写一个简单的 api 应用,但在前后端通信时遇到了一些问题,由于我使用的是 EventSource 连接的后端,导致我在前段切换页面或者更新表单的时候会出现前后端断联的情况,现在常用的前后端通信用于生产的,一般用什么通信协议


Nodejs项目前后端通信一般用什么通信方式
12 回复

当然是 Tcp 了


如果是用前端路由去跳转页面的话,在路由最外面封装一个公共的组件来处理 EventSource 。然后每次切换页面的时候,这个组件不被销毁,连接就不会断了吧。

好办法,我会尝试一下的

前端项目使用 SPA 方式不就好了.

HTTP 呗,长连接双向的话用 websocket

新人小白,我刚开始写的时候没有考虑到这个因素,现在要改写 SPA 工程量会有点大,感谢回答

我正在尝试使用 ws

使用 Service Worker 或者 Web Worker 之类的构建 EventSource 可以吗?

当然是 HTTP 了
SSE 就 chatGPT 带🔥了一把吧
以前我都不知道这个

在Node.js项目中,前后端通信通常采用的通信方式主要有以下几种:

一、RESTful API

这是最常见的前后端通信方式,基于HTTP协议,使用HTTP请求方法(如GET、POST、PUT、DELETE)进行数据的增删改查。后端使用Express框架构建RESTful API,前端使用Axios或Fetch API发送HTTP请求。

示例代码(前端使用Axios):

axios.get('/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

二、WebSocket/Socket.io

适用于需要实时通信的场景,如聊天应用、实时通知等。WebSocket是一种全双工通信协议,Socket.io是一个基于WebSocket的库,提供了简化实时通信开发的API。

示例代码(使用Socket.io):

// 后端
const io = require('socket.io')(server);
io.on('connection', (socket) => {
  console.log('Client connected');
  socket.on('message', (msg) => {
    console.log('Message:', msg);
    socket.emit('message', 'Hello from server');
  });
});

// 前端
const socket = io('/');
socket.on('connect', () => {
  console.log('Connected to server');
  socket.emit('message', 'Hello from client');
  socket.on('message', (msg) => {
    console.log('Message from server:', msg);
  });
});

选择哪种通信方式取决于应用的具体需求。

回到顶部