如何通过 CloudFront 访问 aws websocket

Posted

技术标签:

【中文标题】如何通过 CloudFront 访问 aws websocket【英文标题】:How to access aws websocket through CloudFront 【发布时间】:2021-08-12 11:49:49 【问题描述】:

我正在关注这个 url 来设置云前端来源。 https://nickzamosenchuk.medium.com/configure-amazon-cloudfront-cdn-for-websocket-connection-43c44b3f877c 如何通过 Angular 应用程序连接 WebSocket。? 我尝试了 2 种方法,但无法连接。

  let data = this.httpClient.get('https://<id>.cloudfront.net/dev').subscribe(datas => 
      console.log(datas);
    );

this.socket = webSocket('wss://<id>.cloudfront.net/dev');

angular中连接WebSocket的方式是什么?

【问题讨论】:

【参考方案1】:

是的,有办法,例如:

import  Injectable  from '@angular/core';
import  webSocket, WebSocketSubject  from 'rxjs/webSocket';

@Injectable(
  providedIn: 'root'
)
export class WebsocketExampleService 

  readonly url = "(wss|https)://<id>.cloudfront.net/";

  subject: WebSocketSubject<any>;

  constructor() 
    this.subject = webSocket(
      url: this.url,
      deserializer: msg => msg
    );
  

【讨论】:

仍然无法连接到 WebSocket @YaakovHatam 错误是什么?您在浏览器控制台中看到了什么? @user8057332 我没有收到任何控制台错误,但它没有击中 CloudFront。我们需要 CloudFront 源中的任何更新吗?

以上是关于如何通过 CloudFront 访问 aws websocket的主要内容,如果未能解决你的问题,请参考以下文章

AWS S3+Cloudfront 访问被拒绝初学者问题

Cloudfront 提供通过 AWS CDK Python 为 S3 存储桶来源创建的访问被拒绝响应,无需公共访问

带有签名 URL 的 AWS CloudFront:403 访问被拒绝

如何使用 C# HttpClient 或 AWS SDK 通过 CloudFront 将视频上传到 S3

使用 AWS CloudFront 时,如何向公众隐藏自定义源服务器?

aws cloudfront - 使用 S3 拒绝访问