Web 套接字与间隔轮询

2024-01-02

我目前正在寻找最合适的解决方案来处理通知。我当前的选择是使用 websockets 或仅进行轮询(每分钟仅 1 个请求,无长轮询,无永久轮询)

我在寻找这些方法的性能指标时遇到了一些问题。结果应该能够并行处理大量用户,而不占用太多资源。

选项A:

  • 每 30 秒发送一次请求以检查用户是否有新通知

选项B:

  • 每个用户都拥有一个 websocket 连接,并直接收到新通知的通知

在后端我使用 java spring 和 spring boot。您知道任何最佳实践或参考实施吗?


我建议使用选项 A,因为您只需要快速响应并且不想实时提供更多信息。您还谈到了许多用户,因此在一定时间间隔内请求用户通知应该比为每个用户保留一个开放的 Websocket 消耗更少的资源。这还取决于您的环境。

也看看这里:保持 1,000,000 个 websocket 开放需要多少系统资源? https://stackoverflow.com/questions/17448061/how-many-system-resources-will-be-held-for-keeping-1-000-000-websocket-open

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web 套接字与间隔轮询 的相关文章

随机推荐

  • Swisscom 应用程序云更新后 Spring Boot HTTPS 重定向循环

    我们正在使用 Swisscom Application Cloud 来运行我们的 Spring Boot 应用程序 在 2018 年 2 月 22 日 迁移到多云环境 之后 瑞士电信状态页 https status developer sw
  • Jquery 隐藏多个div onclick

    我正在制作一个健身应用程序 在每个锻炼页面上我都有一个显示 信息 数据输入 和 进度 的按钮 然而 当单击按钮时 这工作正常 div 层彼此重叠并同时显示 我想要的是主要显示的信息 但当用户单击其他按钮时 其他按钮 div 被隐藏 因此一次
  • spring3 mvc @Valid注释找不到

    我尝试使用 Valid注释 但eclipse总是给出 Valid无法解析为类型 错误 我正在使用 spring3 库 我已将 hibernate validator 4 1 0 Final jar 导入到 WEB INF lib 目录中 然
  • LNK2019:VS 单元测试中未解析的外部符号

    我收到标题中所述的错误 我保证了以下几点 包含目录 包含库和附加包含目录设置正确 在属性中 子系统设置为 CONSOLE 对我的代码的评论 LifeLib 是一个项目 其中包含我想测试一些方法的类 这些类在命名空间 LifeLib 中定义
  • 滚动时保持 SVG 对象静态

    在我的 Web 应用程序中 我正在生成一个 SVG 文件 其中包含一个 标题 当用户向下滚动图像时 我希望该文件在窗口顶部保持可见 我可以想到两种方法来实现这一目标 但我正在寻找任何其他好主意 我的两个想法是 生成两个单独的 SVG 一个是
  • vb.net 中的 Excel 文件

    如何在 vb net 中打开 编辑 读取 Excel 列 例如 我想知道 B 列的值 直到它包含值的单元格 谢谢 使用 ADO Net Here s a link http www dotnetjohn com articles aspx
  • PostgreSQL - 按时间戳值分组?

    我有一张表 其中存储了采购订单 每行都有一个时间戳 指示下订单的时间 我希望能够创建一个报告 指示每天 每月或每年的购买数量 我想我会做一个简单的 SELECT COUNT xxx FROM tbl orders GROUP BY tbl
  • 如何抑制绘制树状图但仍然在seaborn中聚类?

    我想在seaborn中绘制一个聚类图 按行和列进行聚类 我不想绘制树状图 Setting row cluster False or col cluster False删除树状图 但也停止聚类 如何仍然进行 2D 聚类但抑制树状图 这个问题
  • 如何在 iOS 中查找 Couchbase Mobile DB 文件?

    我想在 iOS 中找到 Couchbase Mobile DB 文件位置 并请描述如何打开 db 文件 Thanks 如果您使用的是 CBM 1 4 或更早版本 您可以按照此处所述找到 cblite2 db 文件的位置 https deve
  • 如何将具有固定值的路径缩放为动态可组合大小?

    我有一个简单的Box我想将其剪辑为自定义形状的可组合项 但每当我尝试它时 形状的尺寸仍然非常僵硬且很小 我尝试使用在路径级别上进行缩放Matrix 但无济于事 这是示例 const val clockHand M0 80 52L2 86l2
  • Flex 4 Spark 面板有一个丑陋的灰色顶部

    我有一个 Flex 4 Spark 面板 我通过 PopUpManager 弹出 但它的顶部有一个我无法摆脱的灰色部分 那是什么以及如何删除它 UPDATE 下面是一个示例面板 我只是简单地打电话PopUpManager addPopUp
  • C 中 scanf 中的扫描集行为

    我尝试用 scanf 中的 scanset 做一些事情 但卡在某个地方 当我写的时候 char s1 250 scanf A Z s1 input AHJHkiuy Output AHJH 有了这个 scanf n s1 input abc
  • Joi 验证显示自定义错误消息

    嗨我正在使用 hapi joi 15 1 1 不幸的是 我现在无法更新到最新的 Joi 版本 这是我的验证架构 const schema name Joi string allow max 30 addLine1 Joi string re
  • 使用 NSTask 创建 zip 存档,其中包含包含文件的第一级文件夹

    我的方法适用于从先前创建和填充的临时目录中压缩文件 NSURL destURL self archiveDestURL NSTask task NSTask alloc init task setCurrentDirectoryPath s
  • .NET/CLR 上的 Scala 中的具体化泛型

    Scala 至少在JVM https en wikipedia org wiki Java virtual machine uses 类型擦除 https stackoverflow com tags type erasure info以实
  • php 使用 strtotime 获取一年中第一周的正确日期

    我使用此代码来获取一年中第一周的第一个日期 echo date Y m d strtotime 2018W01 JAN 1 is Monday returned 01 01 echo date Y m d strtotime 2013W01
  • 如何在 nextJS getserversideprops 中使用 firebase

    如果有签名用户 我想使用 getServerSideProps 在 Firestore 中获取 示例 文档 下面的代码不起作用 结果是 无法读取 我应该怎么办 或者还有其他方法吗 export const getServerSideProp
  • 虚函数的实现可以放在头文件中吗

    通常 如果我们将非虚拟成员函数的实现放入头文件中 该函数将被内联 如果我们将虚拟成员函数的实现放在头文件中怎么样 我想这与将其放入 cpp 文件中是一样的 因为内联和多态性不能一起工作 我的说法正确吗 将方法的实现放入头文件中并不会使其内联
  • 杜伦达尔 谷歌翻译

    如何在 Durundal Shell js shell html 中绑定 Google 翻译 html div div script function googleTranslateElementInit new google transl
  • Web 套接字与间隔轮询

    我目前正在寻找最合适的解决方案来处理通知 我当前的选择是使用 websockets 或仅进行轮询 每分钟仅 1 个请求 无长轮询 无永久轮询 我在寻找这些方法的性能指标时遇到了一些问题 结果应该能够并行处理大量用户 而不占用太多资源 选项A