首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Websockets客户端API中的HTTP标头

Websockets客户端API中的HTTP标头
EN

Stack Overflow用户
提问于 2010-12-06 05:04:47
回答 7查看 292.1K关注 0票数 280

使用任何支持此功能的HTTP头客户端,似乎很容易将自定义HTTP头添加到您的websocket客户端,但我不知道如何使用JSON API来做这件事。

然而,似乎应该有支持these headers in the spec

有谁知道如何做到这一点?

代码语言:javascript
复制
var ws = new WebSocket("ws://example.com/service");

具体地说,我需要能够发送HTTP Authorization头。

EN

回答 7

Stack Overflow用户

发布于 2018-02-05 17:04:48

更多的是一种替代解决方案,但所有现代浏览器都会将域cookie与连接一起发送,因此使用:

代码语言:javascript
复制
var authToken = 'R3YKZFKBVi';

document.cookie = 'X-Authorization=' + authToken + '; path=/';

var ws = new WebSocket(
    'wss://localhost:9000/wss/'
);

以请求连接头结束:

代码语言:javascript
复制
Cookie: X-Authorization=R3YKZFKBVi
票数 74
EN

Stack Overflow用户

发布于 2016-03-09 19:20:33

当您需要使用JavaScript WebSockets接口建立WebSockets连接时,不能发送自定义头部。您可以通过使用第二个WebSocket类构造函数来使用Subprotocols头:

代码语言:javascript
复制
var ws = new WebSocket("ws://example.com/service", "soap");

然后,您可以在服务器上使用Sec-WebSocket-Protocol密钥获得子协议报头。

还有一个限制,子协议标头的值不能包含逗号(,)!

票数 25
EN

Stack Overflow用户

发布于 2017-03-04 21:50:52

您不能添加头,但如果您只需要在连接时将值传递到服务器,则可以在url上指定查询字符串部分:

代码语言:javascript
复制
var ws = new WebSocket("ws://example.com/service?key1=value1&key2=value2");

该URL是有效的,但是--当然--您需要修改服务器代码来解析它。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4361173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档