如何在平均堆栈应用程序中处理实时消息?

Posted

技术标签:

【中文标题】如何在平均堆栈应用程序中处理实时消息?【英文标题】:How to handle live messaging in Mean stack application? 【发布时间】:2020-01-25 19:40:27 【问题描述】:

我正计划开发一个 MEAN Stack 应用程序。在搜索互联网后,我并不清楚如何在我的应用程序中处理实时消息,它就像 whatsapp/fb messenger 或任何其他聊天应用程序一样工作。

最初我想使用 setTimeout 函数并在指定的秒数内对最新数据进行 REST 调用,但我不知道这是否可行。

谁能帮助我了解在服务器端和客户端更新消息的最佳做法是什么?

【问题讨论】:

你见过关于 websockets 的任何东西吗?看起来更自然。 我可以在 MEAN 应用中使用它吗? 为什么不呢? socket.io 节点应该能够处理 websocket。 Angular 肯定会。 @Random 你能详细说明一下 Angular 是如何做到这一点的吗? 【参考方案1】:

您可以使用 Socket.io。它是一个 websocket,允许您在浏览器和服务器之间进行通信。它很容易设置和开始使用。

您可以使用npm install --save socket.io 安装它(假设您已经安装了 express,因为您想要一个 MEAN 应用程序)

然后你可以从这样的基础开始:

var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);

app.get('/', function(req, res)
   res.sendFile(__dirname + '/index.html');
);

io.on('connection', function(socket)
   console.log('a user connected');
);

http.listen(3000, function()
   console.log('listening on *:3000');
);

您可以在here 中找到文档 希望对您有所帮助!

【讨论】:

以上是关于如何在平均堆栈应用程序中处理实时消息?的主要内容,如果未能解决你的问题,请参考以下文章

在生产中运行平均堆栈应用程序

专为实时而构建:使用Apache Kafka进行大数据消息传递 第2部分

在heroku中部署平均堆栈应用程序时出错

使用 mern 堆栈和 socket.io 的聊天应用程序在发送超过 20 条消息后变慢

实时构建:Apache Kafka的大数据消息传递,Part 2

实时调试堆栈溢出