首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建实时通知系统的不同选项

创建实时通知系统的不同选项
EN

Stack Overflow用户
提问于 2020-10-17 12:05:39
回答 1查看 618关注 0票数 0

我想要创建一个实时通知系统,但不确定什么是最好的架构。

这是我的应用程序将要经历的旅程。

  1. React应用程序在Node中调用POST API,该API更新通知表.

这就是我不确定的地方

无论是另一个正在寻找此通知的用户,每10秒左右连续轮询一个通知API以获得通知,或者我们使用某种websocket。

我觉得投票的方法会更密集,更难扩展。

在websocket中,我基本上计划每10秒轮询一次数据库,除非数据库中有一个触发器调用websocket等等。

对此有什么想法吗,或者我错过了什么选择?

我的技术栈是Node,如果这有关系的话,请响应MYSQL。

EN

回答 1

Stack Overflow用户

发布于 2020-10-17 14:05:42

我不太清楚你在处理通知时想做什么。对于一个实时应用程序,我会使用socket.io。上述通知是否意在提醒其他用户新用户已加入?如果是这样的话,socket.io也很容易做到这一点。每次新用户连接到这样的套接字时,您也可以从db检索信息(MongoDB与Mongoose一起使用):

代码语言:javascript
复制
mongoose.connect('mongodb://localhost:27017/DBNAME', {useNewUrlParser: true, useUnifiedTopology: true});

let exampleSchema = new mongoose.Schema({
  ....
  ....
})
let exampleModel = new mongoose.model("exampleModel", exampleSchema )

mongoose.connect('mongodb://localhost:27017/ExampleDB', {useNewUrlParser: true, useUnifiedTopology: true});

每次建立新的套接字连接时,下面的代码都会搜索整个数据库。然后,它将向所有连接的套接字发出通知数据。

代码语言:javascript
复制
let io = new sio(server);

io.on('connection', (socket) => {
    exampleModel.find({}, (err, data)=> {
       const notification = JSON.stringify(data.notification)
       io.emit('notificationFromDB', notification)
      })
    })

也许你可以详细说明你想做什么,而我可以试着帮你解决你的问题。

更新PST 10/21/2020晚上9:40:

下面的代码将从客户端接收bookComment,然后将其广播给所有连接的客户端:

代码语言:javascript
复制
    io.on('connection', (socket) => {
      socket.on('bookComment', (comment) => {
        //save comment to database here or perform other operations
        io.emit('broadcastComment', comment)
  })
})

如果你还有其他问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64402265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档