我正在尝试将我的连接授权给第三方websocket主机,他们需要将JWT设置为协议。
我能够包括这样的标题,但我得到一个错误回来。有更好的方法吗?
var client = new ClientWebSocket();
client.Options.SetRequestHeader("Sec-WebSocket-Protocol", "my JWT");
await client.ConnectAsync(...);
我得到的错误是这样的:
The WebSocket client request requested '' protocol(s),
but server is only accepting '...my JWT...' protocol(s).
我试图在c#中完成这项工作是不成功的,尽管我能够通过Postman Websockets (beta)正确连接,只需设置Sec-WebSocket-Protocol
标头,然后Postman自动找出其他标头。
似乎已经工作的解决方案是,我不允许设置Sec-WebSocket-Protocol
头自己。我必须用client.Options.AddSubProtocol("my JWT")
代替。