Javascript WebSocket JS的自定义标题

Javascript WebSocket JS的自定义标题,javascript,php,node.js,web-services,websocket,Javascript,Php,Node.js,Web Services,Websocket,我找到了一个简单的解决方案,使用WebSocket为基于PHP作为后端、js+vuejs作为前端的web应用程序定制标题 我的应用程序应该连接到基于Java的WebSocket服务器,以获得受Oauth2保护的live stat.WebSocket服务器。所以我的应用程序应该像这样添加标题 “授权:持有人647d14-b132-41b9-aa4c-9eafad5d9630” 当连接到WS-server时。但我无法添加此标题,因为浏览器不支持自定义标题。回答有关自定义标题的问题 我需要下面的代码

我找到了一个简单的解决方案,使用WebSocket为基于PHP作为后端、js+vuejs作为前端的web应用程序定制标题

我的应用程序应该连接到基于Java的WebSocket服务器,以获得受Oauth2保护的live stat.WebSocket服务器。所以我的应用程序应该像这样添加标题

“授权:持有人647d14-b132-41b9-aa4c-9eafad5d9630”

当连接到WS-server时。但我无法添加此标题,因为浏览器不支持自定义标题。回答有关自定义标题的问题

我需要下面的代码

var serverWs = "ws://servername/stat"; var opts = { reconnection: false, transports: ['websocket'], extraHeaders: { 'Authorization': 'Bearer xxxx' } } var ws = new WebSocket(serverWs, opts);

存在什么解决方案?

Websocket客户端API不允许发送自定义标头,它们允许您只设置一个标头,即Sec Websocket协议,即特定于应用程序的子程序。您可以使用此标头传递承载令牌

另一个选项是在查询字符串中使用标记

或者您可以在客户端或服务器上使用一些支持自定义头实现的库,例如。
我对大量错误的websocket和header信息感到非常困惑。有一种方法可以将标题添加到WebSocket连接

像这样

options.headers= {"header1":"value"}
const socket = new WebSocket('wss://yourwebsocketAPIpath', [],options )

如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接。-@巴加夫·拉奥如果这原本是一个问题,那么经过编辑后,现在完全是误导。WebSocket API中没有“options”参数。@user1999304但它是一个错误的语句。清楚地表明没有第三个参数来设置任何选项。也许你引用的是第三方库而不是WebSocket web标准?@user1999304你是对的!!!!非常感谢。这不是规格,而是事实。我使用它将身份验证头从react native ios app传递到使用wss协议的aws<代码>新WebSocket('wss://echo.websocket.org“,[],{headers:{'myheader':'MyValue'}})您将看到它不起作用。