【问题标题】:Socket.io integration with Express.jsSocket.io 与 Express.js 的集成
【发布时间】:2021-04-08 01:14:33
【问题描述】:

我尝试创建一个应用程序,最终用户将在该通知发送给服务提供商之后请求服务,一旦服务提供商接受用户请求,用户将通过通知通知他的请求被其中一个接受服务提供商。

下面是我正在使用的堆栈。 Node.js、Express.js、Socket.io、React.js

下面是 server.js 的代码

const express  = require('express')
const app = express()
const server = require('http').createServer(app);
const io = require('socket.io')(server)
const cors = require('cors')
var routes = require('./routes/routes')
const port = process.env.PORT || 8080
app.use(express.json({ limit: "100mb" }))
app.use(express.urlencoded({ extended: false }))
app.use(cors())
app.use(routes)
app.use(express.static('uploads'))
app.io = io

server.listen(port,()=>{
    console.log('API server started on: ',port)
})

有一个预订API正在接受用户的预订。

我想知道如何编写代码来向服务提供商发送通知。

这就是我在 api 请求到来时尝试生成通知的方式。

【问题讨论】:

  • 请永远不要在屏幕截图中发布代码。邮政编码格式为文本。然后,它可以被搜索,将与屏幕阅读器一起使用,希望帮助您的人可以将代码复制/粘贴到答案中,而不必重新输入所有内容。除此之外,我不清楚您究竟在寻求什么帮助。您提到了有关“服务提供商”的内容,但我们不知道那是什么,也不知道服务提供商到底有什么问题。

标签: node.js reactjs express socket.io


【解决方案1】:

您可以通过创建一个仅连接服务提供商的独特房间来解决此问题。

一旦服务提供者加入套接字,您可以从该服务提供者发出一个提及唯一房间的事件。 (房间的名称可以是服务提供者的唯一 ID)然后服务提供者自己加入那个特定的房间。 当客户从该服务提供商预订时,客户会发出一个事件,提及他从服务提供商数据中获取的特定房间。一旦客户端在服务器中完成预订,客户端就会向该特定房间发出事件。 如果服务提供商已经连接到该房间,那么他/她将从该房间收到通知(这是服务提供商的唯一 ID)。

【讨论】:

    猜你喜欢
    • 2016-02-06
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2023-03-30
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多