Kod*_*_12 9 javascript websocket rxjs angular
我正在寻找从我的角度应用程序到服务器创建基本的 Websocket 连接。根据 RxJs 文档,“websocket”方法是浏览器提供的 WebSocket 对象的包装器:
import { Injectable } from '@angular/core';
import { webSocket } from 'rxjs/webSocket';
@Injectable({
providedIn: 'root'
})
export class WebSocketService {
connect(url: string) {
return webSocket(url);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这些示例非常简单,但令我惊讶的是缺乏有关浏览器需要将数据作为请求标头(即身份验证令牌)的一部分发送给服务器以满足请求的场景的文档。JavaScript WebSockets 支持吗?
我已经看到了一种解决方法,其中 websocket url 将添加令牌作为查询参数(见下图),但这是一个应该避免的安全漏洞。任何建议或参考都会有所帮助!
不。
底层 API 不支持任何附加参数(URL 和协议除外)。
有关更多详细信息,请查看此答案
链接答案中未解释的一种可能的解决方案是,您可以在先前的请求中从服务器设置 cookie。当您打开 WebSocket 时,应该将该 cookie 重新发送到服务器。为此,请确保在 HttpService 中启用withCredentials
| 归档时间: |
|
| 查看次数: |
3749 次 |
| 最近记录: |