如何在平均堆栈应用程序中处理实时消息?
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部分
使用 mern 堆栈和 socket.io 的聊天应用程序在发送超过 20 条消息后变慢