我尝试使用第三方服务器设置C#客户端的WebSocket连接。当我将JS客户端连接到同一台服务器时,它建立了连接,一切都很顺利。 C#客户端连接到服务器,但由于某些未知原因,服务器响应500代码。使用WireShark进行调试表明,WebSocket连接的HTTP握手阶段在一组标头中的客户端实现之间有所不同。我想调整标题默认System.Net.WebSockets.ClientWebSocket
类发送到服务器以检查问题是否存在。虽然,我无法找到办法做到这一点。
如何指示该命名空间中某些其他类的ClientWebSocket
在握手阶段发送额外的给定标头?
答案 0 :(得分:9)
看起来这是ClientWebSocketOptions.SetRequestHeader
公开的,所以:
obj.Options.SetRequestHeader("foo", "bar");
应该有效。这也可以访问AddSubProtocol(...)
。