首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使guard订阅Angular 2中服务的长轮询请求

在Angular 2中,要使guard订阅服务的长轮询请求,可以按照以下步骤进行:

  1. 创建一个Guard类:首先,创建一个Guard类来实现CanActivate接口,该接口用于控制导航到某个路由的权限。可以使用Angular CLI生成一个Guard类,命令为:ng generate guard guard-name。
  2. 在Guard类中注入服务:在Guard类的构造函数中注入需要订阅长轮询请求的服务。例如,假设服务名为DataService,可以这样注入:constructor(private dataService: DataService) {}
  3. 实现CanActivate接口:在Guard类中实现CanActivate接口的canActivate方法。在该方法中,订阅服务的长轮询请求,并返回一个Observable<boolean>来表示是否允许导航到目标路由。
代码语言:typescript
复制

import { Injectable } from '@angular/core';

import { CanActivate } from '@angular/router';

import { Observable } from 'rxjs';

@Injectable()

export class LongPollingGuard implements CanActivate {

代码语言:txt
复制
 constructor(private dataService: DataService) {}
代码语言:txt
复制
 canActivate(): Observable<boolean> {
代码语言:txt
复制
   return this.dataService.subscribeLongPollingRequest();
代码语言:txt
复制
 }

}

代码语言:txt
复制
  1. 在路由配置中使用Guard:在路由配置中使用Guard来保护需要订阅长轮询请求的路由。在路由配置中,将Guard类添加到目标路由的canActivate属性中。
代码语言:typescript
复制

import { NgModule } from '@angular/core';

import { Routes, RouterModule } from '@angular/router';

import { LongPollingGuard } from './long-polling.guard';

import { TargetComponent } from './target.component';

const routes: Routes = [

代码语言:txt
复制
 {
代码语言:txt
复制
   path: 'target',
代码语言:txt
复制
   component: TargetComponent,
代码语言:txt
复制
   canActivate: [LongPollingGuard]
代码语言:txt
复制
 }

];

@NgModule({

代码语言:txt
复制
 imports: [RouterModule.forRoot(routes)],
代码语言:txt
复制
 exports: [RouterModule]

})

export class AppRoutingModule {}

代码语言:txt
复制

以上步骤中,Guard类通过注入服务来订阅长轮询请求,并在canActivate方法中返回一个Observable<boolean>,表示是否允许导航到目标路由。在路由配置中使用Guard来保护需要订阅长轮询请求的路由。

对于腾讯云相关产品和产品介绍链接地址,可以参考腾讯云官方文档或者腾讯云开发者社区获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实战 | 基于node+socket.io+redis多房间多进程聊天室

轮询(Polling) 客户端需要定时往浏览器轮询发送请求,且只有当服务有数据更新后,客户端下一次轮询请求才能拿到更新后数据,在数据更新前多次请求相当于无效。...这对带宽资源造成了极大浪费,若提高轮询定时器时间,又会有数据更新不及时烦恼。 commet 为了解决短轮询弊端,一种基于http连接"服务器推"方式被hack出来。...其与短轮询区别主要是,采用commet时,客户端与服务端保持一个连接,当数据发生改变时,服务端主动将数据推送到客户端。Comet 又可以被细分为两种实现方式,一种是轮询机制,一种是流技术。...轮询 轮询跟短轮询不同地方是,客户端往服务端发送请求后,服务端判断是否有数据更新,若没有,则将请求hold住,等待数据更新时,才返回响应。...如何做到多节点同时推送,我们需要建立一套多节点之间消息分发/订阅架构。这时我们引入redispub/sub功能。

2K20

Angular12个经典问题,看看你能答对几个?(文末附带Angular测试)

Route Guard只是路由器运行来检查路由授权接口方法。...这通常用在setter中,当类中值被更改完成时。 可以通过模块任何一个组件,使用订阅方法来实现事件发射订阅。...更少Http请求数:如果应用程序没有捆绑来支持延迟加载(或任何原因),对于每个关联HTML和CSS,都会有一个单独服务请求。...但是预编译应用程序会将所有模板和样式与组件对齐,因此到服务Http请求数量会更少。 更快渲染:如果应用程序不是AOT编译,那么应用程序完全加载时,编译过程会发生在浏览器中。...如果服务HTTP请求结果或其它一些异步操作不再需要,则Observable订阅者可以取消订阅,而Promise将最终调用成功或失败回调,即使你不需要通知或其提供结果。

17.3K80

如何优雅实现消息通信?

早期,很多网站为了实现推送技术,所用技术都是轮询轮询是指由浏览器每隔一段时间向服务器发出 HTTP 请求,然后服务器返回最新数据给客户端。...常见轮询方式分为轮询轮询,它们区别如下图所示: ?...这种传统模式带来很明显缺点,即浏览器需要不断服务器发出请求,然而 HTTP 请求与响应可能会包含较长头部,其中真正有效数据可能只是很小一部分,所以这样会消耗很多带宽资源。...接下来阿宝哥将介绍如何利用 Redis 提供发布与订阅功能实现系统间通信,不过在介绍具体应用前,我们得先熟悉一下 Redis 提供发布与订阅功能。...到这里发布订阅模式应用场景,已经介绍完了。最后,阿宝哥来介绍一下如何使用 TS 实现一个支持发布与订阅功能 EventEmitter 组件。

1.5K50

【译】.NET Core 3.0 Preview 3中关于ASP.NET Core更新内容

运行时编译 Worker服务模板 gRPC模板 Angular模板已更新为Angular 7 SPA认证 SignalR与Endpoint路由集成 SignalR Java客户端支持轮询 其他详细信息和已知问题...在本节中,我们将展示如何创建一个新Angular或React模板,该模板允许我们对用户进行身份验证并访问受保护API资源。...ASP.NET Core应用程序包括已配置Identity Server实例,可是让Angular应用程序很方面的对用户进行身份验证,并针对ASP.NET Core应用程序中受保护资源发送HTTP请求...我们向Java客户端添加了轮询支持,这使它能够在不支持WebSockets环境中建立连接。...这也使您能够在客户端应用程序中专门选择轮询传输。 gRPC 模板 这个预览版引入了一个用ASP.NET Core构建gRPC服务新模板。

22.6K10

基于node+socket.io+redis多房间多进程聊天室

传统Web站点为了实现推送技术,所用技术都是轮询,这种传统模式带来很明显缺点,即浏览器需要不断服务器发出请求。 短轮询(Polling) ?...客户端需要定时往浏览器轮询发送请求,且只有当服务有数据更新后,客户端下一次轮询请求才能拿到更新后数据,在数据更新前多次请求相当于无效。...这对带宽资源造成了极大浪费,若提高轮询定时器时间,又会有数据更新不及时烦恼。 commet 为了解决短轮询弊端,一种基于http连接"服务器推"方式被hack出来。...其与短轮询区别主要是,采用commet时,客户端与服务端保持一个连接,当数据发生改变时,服务端主动将数据推送到客户端。...轮询跟短轮询不同地方是,客户端往服务端发送请求后,服务端判断是否有数据更新,若没有,则将请求hold住,等待数据更新时,才返回响应。

2.1K50

基于node+socket.io+redis多房间多进程聊天室

传统Web站点为了实现推送技术,所用技术都是轮询,这种传统模式带来很明显缺点,即浏览器需要不断服务器发出请求。...短轮询(Polling) 客户端需要定时往浏览器轮询发送请求,且只有当服务有数据更新后,客户端下一次轮询请求才能拿到更新后数据,在数据更新前多次请求相当于无效。...这对带宽资源造成了极大浪费,若提高轮询定时器时间,又会有数据更新不及时烦恼。 commet 为了解决短轮询弊端,一种基于http连接"服务器推"方式被hack出来。...其与短轮询区别主要是,采用commet时,客户端与服务端保持一个连接,当数据发生改变时,服务端主动将数据推送到客户端。...轮询 轮询跟短轮询不同地方是,客户端往服务端发送请求后,服务端判断是否有数据更新,若没有,则将请求hold住,等待数据更新时,才返回响应。

3K91

Angular核心-路由和导航

Angular核心-路由和导航 博客首页:蔚说博客 欢迎关注点赞收藏⭐️留言 作者水平很有限,如果发现错误,求告知,多谢! 有问题可私信交流!!!...(达内教育学习笔记)仅供学习交流 @[TOC]Angular核心-路由和导航) 多页面应用 :一个项目有多个完整HTML文件,使用超链接跳转–摧毁一颗DOM树,同步请求另一颗,得到之后再重建新DOM...单页面应用 :称为SPA(Single Page Application),整个项目中有且只有一个“完整”HTML文件,其他页面都是DIV片段,需要哪个“页面”就将其异步请求下来,“插入”到“完整...==单页面应用优势:==整个项目中客户端只需要下载一个HTML页面,创建一个完整DOM树,页面跳转都是一个DIV替换另一个DIV而已—能够实现过场动画 单页面应用不足:不利于SEO优化 Angular...视频播放,只能在学校内播放(客户ip地址限制) VIP学员视频播放,只能在13:30-22:00时间播放… Angular提供了“路由守卫(Guard)”来访问路由组件前检查功能:如果检查通过(return

2.2K20

Comet:基于 HTTP 连接服务器推”技术

但是 AJAX 应用使请求出现变得频繁,而 Comet 则会长时间占用一个连接,上述服务器模型在新应用背景下会变得非常低效,线程池里有限线程数甚至可能会阻塞新连接。...如果是基 于 AJAX 轮询方式,客户端可以异步地发出一个 XMLHttpRequest 请求,通知服务器端关闭数据连接。...如果客户端使用是基于 AJAX 轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护资源。...观察者模型 Pushlet 使用了观察者模型:客户端发送请求订阅感兴趣事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生事件以多播方式发送到订阅事件队列里。...服务器端会为每个会话维护一个订阅主题集合、事件队列。 服务器端事件源会把新产生事件以多播方式发送到每个会话(即订阅者)事件队列里。

2.5K30

Comet:基于 HTTP 连接服务器推”技术

但是 AJAX 应用使请求出现变得频繁,而 Comet 则会长时间占用一个连接,上述服务器模型在新应用背景下会变得非常低效,线程池里有限线程数甚至可能会阻塞新连接。...如果是基于 AJAX 轮询方式,客户端可以异步地发出一个 XMLHttpRequest 请求,通知服务器端关闭数据连接。...如果客户端使用是基于 AJAX 轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护资源。...观察者模型 Pushlet 使用了观察者模型:客户端发送请求订阅感兴趣事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生事件以多播方式发送到订阅事件队列里。...服务器端会为每个会话维护一个订阅主题集合、事件队列。 服务器端事件源会把新产生事件以多播方式发送到每个会话(即订阅者)事件队列里。

2.1K70

浏览器与服务消息通信

还有一个类似的轮询是使用JSONP跨域请求方式轮询,在实现起来有差别,但基本原理都是相同,都是客户端不断服务器发起请求。 优点 实现简单。...comet Comet是一种用于Web推送技术,能使服务器实时地将更新信息传送到客户端,而无须客户端发出请求,目前有两种实现方式: 轮询(long polling) 轮询 (long polling...现在浏览器已经支持CROS跨域方式请求,因此HTTP和JSONP轮询方式是慢慢被淘汰一种技术,建议采用XHR轮询。...Pushlet Pushlet 使用了观察者模型:客户端发送请求订阅感兴趣事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生事件以多播方式发送到订阅事件队列里。...如果客户端使用是基于 AJAX 轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护资源。

1.6K30

浏览器与服务消息通信

还有一个类似的轮询是使用JSONP跨域请求方式轮询,在实现起来有差别,但基本原理都是相同,都是客户端不断服务器发起请求。 优点 实现简单。...comet Comet是一种用于Web推送技术,能使服务器实时地将更新信息传送到客户端,而无须客户端发出请求,目前有两种实现方式: 轮询(long polling) 轮询 (long polling...现在浏览器已经支持CROS跨域方式请求,因此HTTP和JSONP轮询方式是慢慢被淘汰一种技术,建议采用XHR轮询。...Pushlet Pushlet 使用了观察者模型:客户端发送请求订阅感兴趣事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生事件以多播方式发送到订阅事件队列里。...如果客户端使用是基于 AJAX 轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护资源。

1.6K60

浏览器与服务消息通信

还有一个类似的轮询是使用JSONP跨域请求方式轮询,在实现起来有差别,但基本原理都是相同,都是客户端不断服务器发起请求。 优点 实现简单。...comet Comet是一种用于Web推送技术,能使服务器实时地将更新信息传送到客户端,而无须客户端发出请求,目前有两种实现方式: 轮询(long polling) 轮询 (long polling...现在浏览器已经支持CROS跨域方式请求,因此HTTP和JSONP轮询方式是慢慢被淘汰一种技术,建议采用XHR轮询。...Pushlet Pushlet 使用了观察者模型:客户端发送请求订阅感兴趣事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生事件以多播方式发送到订阅事件队列里。...如果客户端使用是基于 AJAX 轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护资源。

1.8K50

动手实践,即时通讯WebSocket代码实现

近年来,随着HTML5诞生,WebSocket协议被提出,它实现了浏览器与服务全双工通信,扩展了浏览器与服务通信功能,使服务端也能主动向客户端发送数据。   ...Web模式 对于信息变化不频繁Web应用来说造成麻烦较小,而对于涉及实时信息Web应用却带来了很大不便,如带有即时通信、实时数据、订阅推送等功能应 用。...轮询是最原始实现实时Web应用解决方案。轮询技术要求客户端以设定时间间隔周期性地向服务端发送请求,频繁地查询是否有新数据改动。...明显地,这种方法会导致过多不必要请求,浪费流量和服务器资源。  Comet技术又可以分为轮询和流技术。轮询改进了上述轮询技术,减小了无用请求。...流技术通常是指客户端使用一个隐藏窗口与服务端建立一个HTTP连接,服务端会不断更新连接状态以保持HTTP连接存活;这样的话,服务端就可以通过这条连接主动将数据发送给客户端;流技术在大并发环境下,

95240

Nacos配置中心交互模型是 push 还是 pull ?你应该这么回答

**轮询** 轮询可不是什么新技术,它不过是由服务端控制响应客户端请求返回时间,来减少客户端无效请求一种优化手段,其实对于客户端来说与短轮询使用并没有本质上区别。...[2021062314550761.png] 服务端根据请求header中Long-Pulling-Timeout属性来区分请求轮询还是短轮询,这里咱们只关注轮询部分,接着看LongPollingService...(记住这个service很关键)类中addLongPollingClient()方法是如何处理客户端轮询请求。...[处理轮询] 到这我们知道服务端是如何挂起客户端轮询请求,一旦请求在挂起期间,用户通过管理平台操作了配置项,或者服务端收到了来自其他客户端节点修改配置请求。...[订阅数据变更事件] DataChangeTask内主要逻辑就是遍历allSubs队列,上边我们知道,这个队列中维护是所有客户端轮询请求任务,从这些任务中找到包含当前发生变更groupkey

1.2K40

如何在ASP.NET Core中使用SignalR构建与Angular通信实时通信应用程序

第一种方法是在定义时间间隔(轮询)定期调用API 以更新仪表板上数据。 无论如何,还是有一个问题:如果没有更新数据,我们会因请求而不必要地增加网络流量。...一种替代方法是轮询技术:如果服务器没有可用数据,则它可以使请求保持活动状态,直到发生某种情况或达到预设超时时间为止,而不是发送空响应。如果存在新数据,则完整响应将到达客户端。...不幸是,必须在客户端和服务器端都对WebSocket提供完全支持,以使其可用。然后,我们需要提供替代系统(fallback),无论如何,该替代系统都允许我们应用程序运行。...(将其注入到构造函数中服务),应该订阅getMessage()方法并管理到达消息。...(用于订阅还是用于取消订阅)都可以,但是我们必须注意对主题粗心使用。

2.1K20

springMvc DeferredResultlong polling应用

这里暂抛开某些场景webSocket解决方案。 举一个生活中列子来说明轮询轮询好在哪里:电商云集时代,大家肯定都有查询快递经历,怎么最快知道快递进度呢?...轮询保证了每次发起查询请求都是有效,极大减少了与服务交互,基于web异步处理技术,大大提升了服务性能 如果在发散触类旁通一下,long polling方式和发布订阅模式有点类似之处...轮询应用有很多,简述下就是:需要及时知道某些消息变更场景都可以用轮询来解决,当然,你可能又想起了发布订阅了,哈哈 比如:在线聊天?...在比如类发布订阅例子:配置中心服务,当配置中心配置变更好,相关客户端程序需要及时更新最新配置。...disconf就是基于zookeeper发布订阅来做,apollo就是采用DeferredResultlong polling来做,客户端发起轮询,配置中心监听器监听到配置变更后,将结果响应给客户端

15120

从游击队到正规军(二):马蜂窝旅游网IM客户端架构演进和实践总结

目前采用是 HTTP 链接轮询形式实现,各业务数据消息类型只需遵循约定通用数据结构,即可实现通过数据通道下发给客户端。数据通道不必关心数据具体内容,只需要关注接收与发送。...每次 HTTP 链接请求使用栈顶请求数据,可以模拟在特定业务场景 (如与不同用户私信) 不同处理。...4.3、数据通道异常重连机制 当前数据通道通过 HTTP 链接轮询 (Polling) 实现。 不同业务场景下对 Polling 影响如下图所示: ?...与目前 HTTP 轮询实现机制相比, Websocket 有以下优点: 1)较少控制开销:在连接创建后,服务器和客户端之间交换数据时,用于协议控制数据包头部相对较小。...相对于 HTTP 需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和 Comet 等类似的轮询比较,其也能在短时间内更多次地传递数据; 3)保持连接状态:与 HTTP 不同是,Websocket

1.1K20

WebSocket 与 Polling , Long-Polling , Streaming 比较!

让我们来看看 HTML5 Web Sockets 是如何通过与传统解决方案进行比较,从而极大地减少不必要网络流量和延迟 Polling (轮询), Long-Polling (轮询), and...Long-Polling (轮询) 轮询是让服务器在接收到浏览器所送出 HTTP 请求后,服务器会等待一段时间,若在这段时间里面服务器有新消息,它就会把最新消息传回给浏览器,如果等待时间到了之后也没有新消息的话...然而,由于流仍然封装在 HTTP 中,介入防火墙和代理服务器可能会选择缓冲响应,从而增加消息传递延迟。因此,如果检测到缓冲代理服务器,流式 Comet 解决方案将退回到轮询。...Web 页面连接并订阅特定股票通道(message broker上主题),并使用 XMLHttpReques t每秒轮询更新一次。...注意:后台股票服务实际上每秒会产生大量股票价格更新,因此每秒轮询一次实际上比使用Comet 轮询解决方案更为谨慎,后者会导致一系列持续轮询,这里轮询有效节制了数据更新。

2.7K30

为什么我们需要HTML5 WebSocket

,但是对于那些实时要求比较高应用来说,比如说在线游戏、股票查询,在线证券、设备监控、新闻在线播报、RSS订阅推送等等,当客户端浏览器准备呈现这些信息时候,这些信息在服务器端可能已经过时了。...而Comet 技术实际上是轮询技术改进,又可细分为两种实现方式,一种是轮询机制,一种称为流技术。下面我们简单介绍一下这几种技术: 轮询:     这是最早一种实现实时Web应用方案。...轮询:     轮询是对定时轮询改进和提高,目地是为了降低无效网络传输。...当然,如果服务数据变更非常频繁的话,这种机制和定时轮询比较起来没有本质上性能提高。 流:     流技术方案通常就是在客户端页面使用一个隐藏窗口向服务端发出一个连接请求。...WebSocket 拯救     HTML5 WebSocket设计出来目的就是要取代轮询和Comet技术,使客户端浏览器具备像C/S架构下桌面系统实时通讯能力。

81420

深入浅出即时通讯(1)_即时通讯协议对比

/轮询 实现简单; 开销大,耗费服务器性能与带宽 支持 请求-响应 Websocket 连接快,开销小...,开发难度大 不支持 1.1.1 http短轮询/轮询 一个http请求有如下特点: 连接必须由客户端发起, 服务端被动等待请求...因此在http协议上做服务消息推送,需要客户端不断轮询服务器有需要发送消息时,就在轮询结果中返回给客户端。根据轮询类型不同,又分为短轮询轮询。...http短轮询: [图1.1.3.png] 短轮询处理如下: 客户端请求服务器,服务器立即返回; 客户端间隔一段时间; 客户端请求服务器,服务器立即返回; http轮询: [图1.1.4.png...] 短轮询处理如下: 客户端请求服务器,服务器若有数据,立即返回,否则阻塞等待; 客户端再次请求服务器,服务器若有数据,立即返回,否则阻塞等待; 总结: 不管是http短轮询或http轮询,其吞吐量以及响应性都十分不尽人意

2.7K20
领券