关于网站从后端获取新的notification(通知),我在想可以有以下几种业务逻辑:
假如我现在做一个后台管理系统,我选用那种方式获取notification比较好?或者有没有更好的选择?选项#2 是不是有点给服务器增加压力了? 选项#3是不是给浏览器增加压力了?有没有更好的做法,感谢
如果你的后台管理系统对实时性要求非常高,类似于Bilibili那样,可以考虑使用实时数据库和钩子(如Firebase)来实现通知推送。
如果实时性要求不高,可以在每次页面跳转时请求 GET /notification 来获取通知。
另外,你还可以在前端代码中设置一个定时器,每隔一段时间请求一次通知。这种方式需要权衡定时请求的频率和服务器负载。
还可以考虑使用长轮询、WebSocket或消息队列来实现实时通知推送。
最佳选择可能因具体情况而异,需要根据实际情况进行评估和测试。
我觉得需要根据具体的使用场景来判断:
如果只是某些页面需要长链接,那么轮询的方式可能是最方便的。参考 gitlab ci,会每5秒请求一次结果
如果是全局的通知管理,那么不推荐使用轮询。
如果是交互很强的双向通信:推荐使用 WebSocket如果只需要知道服务端有更新,推荐使用 SSE(Server-Sent Events)这个相对于 WebSocket 更加轻量。
其实可以考虑一下思否的消息推送模式哇,这个时候就得邀请官方了
我的话会选择第二种和第三种方式,管理后台的消息推送并不需要“那么及时”,保证在工作的钉钉或者微信有即时推送就好。用 websocket
个人感觉成本有点太高了,又不是做一个在线IM。
另外就是定时器只要做好销毁,并不会给浏览器压力。倒是每次跳转的时候请求消息接口获取新消息。用户一直刷新可能多出来很多无效请求。
@陟上晴明 谢邀,建议是如果消息后续会持续进行扩展的话,直接用 websocket 来做处理就行,实际上 websocket 并没有多复杂。我可以大概说一下实现方案:
差不多就是这么个流程,一般一两百行代码就可以搞定,只不过思路相对比较复杂。
选项#2与选项#3最简单, 如果notification只是一个模块的一个很次要的功能, 并且要求频率不高确实可以用, 相对而言需要notification选项#3好一些, 也要不了多少性能
实时性要求很高就用websocket
, 思否用的就是这个:
类似这样的组合图,通常有多个轴或多个数据区域,我应该如何配置滚动条从而使其控制指定区域的滚动?
问题内容: 我想在对URL 发送请求之前设置代理。因为我能够连接curl命令来设置代理,但是使用Java代码却无法做到这一点。 卷曲命令: 在Java文件中完成代码更改: 通过上述代码在我的java文件中的更改,我得到以下错误: 这表明我无法将该URL与尝试用于连接URL的代理连接。 问题答案: 我认为这可能会有所帮助:
问题内容: 我不知道是否有可能,因为std lib没有说明有关当前使用的地址的任何信息: http://golang.org/pkg/net/http/ 我想做的是为该HTTP请求设置源地址,为什么?因为我不想将我的主要IP地址用于此类工作… 问题答案: 您可以在客户端传输中设置自定义拨号程序。
如何给组件的props设置默认值?
css 如何设置背景图片的透明度? 代码类似: 网上了搜了说用 background-color: rgba(255, 255, 255, 0.5); 然而实际并没效果,最后那个数字我即使调到 0 依然没任何效果。 恳请大佬指点,谢谢。
安装依赖的时候,提示警告,有 38 个依赖过期了。 这些依赖不确定新版本是否兼容当前项目,有些 babel 的插件废弃了,有些查看很久没有更新。有没有好的办法解决依赖过期的问题呢。