2014-07-02 127 views
2

我試圖設置C#客戶端與第三方服務器的WebSocket連接。當我用JS客戶端連接到同一臺服務器時,它建立連接並且一切正常。 C#客戶端連接到服務器,但由於某些未知原因,服務器使用500個代碼進行響應。使用WireShark進行調試表明,WebSocket連接的HTTP握手階段在一組頭中的客戶端實現之間不同。我想調整標題默認System.Net.WebSockets.ClientWebSocket類發送到服務器,檢查問題是否存在。雖然,我找不到這樣做的方法。在.NET 4.5中爲websocket握手設置自定義標頭

如何指示ClientWebSocket該名稱空間中的某個其他類在握手階段發送額外的給定標題?

+1

你試過'.Options.SetRequestHeader'嗎? –

回答

6

它看起來像這樣由ClientWebSocketOptions.SetRequestHeader暴露,所以:

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

應該工作。這也提供了訪問AddSubProtocol(...)

+1

注意:這對限制標題不起作用,例如'主機' –