繁体   English   中英

如何在没有 web-socket 的情况下从服务器监听事件

[英]How to listen the event from server without web-socket

我想实现一个验证功能,客户端提交一些数据,如 CSV 文件。 服务器将进行验证。 验证分多个阶段完成,每个阶段可能需要不同的时间来验证。 每当服务器完成一个验证步骤时,它应该将其发送给客户端,以便我可以在 UI 中将其显示给用户。

更好的方法应该是什么?

我不想使用 WebSocket,因为这是唯一使用它的功能,而且它是暂时的。

我也不想进行长时间的轮询,因为它会使服务器不必要地忙碌。

我想要像 firebase HTTPS 之类的东西,轮询它保持打开一段时间并每 3 秒丢弃一次,并在两者之间继续监听服务器。 但我不知道如何实现它。

此外,如果答案是保持活动的 HTTPS 连接。 也不知道如何为此编写代码。 所以 React/JS 和节点中的示例非常有帮助。

您还可以使用rejax.io api 服务,您可以向它发出 http 发布请求,并为您广播给客户端的消息。 我是作者。

  • 注册一个免费的 api 密钥
  • 包括客户端的客户端脚本
  • 使(从服务器) http 发布请求以使用消息服务
  • 消息立即广播给客户端
  • 您的服务器继续处理

客户端代码:

Rejax.listen('my-channel-name', function(text) {
    // received text from server
    console.log(text)
})

服务器代码:

const axios = require('axios')
axios
    .post('https://rejax.io:3001/api/server', {
        'app_key' : 'MY_APP_KEY',
        'app_secret' : 'MY_APP_SECRET',
        'channel' : 'my-channel-name',
        'text' : 'hello from server'
    })
    .then(res => {
        console.log(res.data)
    })
    .catch(error => {
        console.error(error)
    })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM