在.NET 4.5中为websocket握手设置自定义标头

时间:2014-07-02 11:59:24

标签: c# .net http websocket

我尝试使用第三方服务器设置C#客户端的WebSocket连接。当我将JS客户端连接到同一台服务器时,它建立了连接,一切都很顺利。 C#客户端连接到服务器,但由于某些未知原因,服务器响应500代码。使用WireShark进行调试表明,WebSocket连接的HTTP握手阶段在一组标头中的客户端实现之间有所不同。我想调整标题默认System.Net.WebSockets.ClientWebSocket类发送到服务器以检查问题是否存在。虽然,我无法找到办法做到这一点。

如何指示该命名空间中某些其他类的ClientWebSocket在握手阶段发送额外的给定标头?

1 个答案:

答案 0 :(得分:9)

看起来这是ClientWebSocketOptions.SetRequestHeader公开的,所以:

obj.Options.SetRequestHeader("foo", "bar");

应该有效。这也可以访问AddSubProtocol(...)