Rxjs Websocket:如何添加标头

Posted

技术标签:

【中文标题】Rxjs Websocket:如何添加标头【英文标题】:Rxjs Websocket : how to add headers 【发布时间】:2020-01-29 13:37:38 【问题描述】:

我正在使用 rxjs 在我的 Angular 应用程序中使用 websocket。

我正在实例化它:我想添加一些标题:

myheader : "abcde"

我是怎么做到的?

这是我的代码:

import  BehaviorSubject, of, Subscription, Subject, Observable, NextObserver  from 'rxjs';

@Injectable()
export class WebsocketService  

  openConnection() 
    this.close();
    const url = 'wss://echo.websocket.org';
    this.connection$ = webSocket(
      url, 
      openObserver: this.openObserver,
      closeObserver: this.closeObserver,
    );
    this.getmsg();

  

建议?

【问题讨论】:

我正在使用@stomp/ng2-stompjs 来帮助我进行 websocket 连接。 rxStompService 有一个configure,它允许connectHeaders。我认为普通的 WebSocket API 不允许使用标头。不过,您可以将一些查询参数传递给 url...wss://echo.websocket.org?firstvar=test 这能回答你的问题吗? HTTP headers in Websockets client API 【参考方案1】:

在创建 WebSocket 时,无论是使用 RxJS 还是使用纯 javascript / DOM API,都无法传递额外的标头。

您可以使用 Query ParamsCookies 向您的服务器提供更多详细信息。

【讨论】:

以上是关于Rxjs Websocket:如何添加标头的主要内容,如果未能解决你的问题,请参考以下文章

使用Cro :: WebSocket :: Client添加授权或标头?

如何在 Jasmine 中模拟 rxjs webSocket?

在 Angular 和 rxjs 中重新连接 websocket?

WebSocket JS 的自定义标头

如何在 Angular 12 中制作一个简单的 rxjs/webSocket 服务?

重新连接 websocket rxjs