diff --git a/websocket-sharp/Handshake.cs b/websocket-sharp/Handshake.cs index 7ccd83834..1657610e9 100644 --- a/websocket-sharp/Handshake.cs +++ b/websocket-sharp/Handshake.cs @@ -65,6 +65,11 @@ public void AddHeader(string name, string value) Headers.Add(name, value); } + public void AddHeaders(WebHeaderCollection headers) + { + Headers.Add(headers); + } + public string[] GetHeaderValues(string name) { return Headers.GetValues(name); diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index b47d3c538..d77b60ac9 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -64,22 +64,23 @@ public class WebSocket : IDisposable #region Private Fields - private string _base64key; - private bool _client; - private Action _closeContext; - private WebSocketContext _context; - private string _extensions; - private AutoResetEvent _exitMessageLoop; - private Object _forClose; - private Object _forSend; - private string _protocol; - private string _protocols; - private volatile WsState _readyState; - private AutoResetEvent _receivePong; - private bool _secure; - private TcpClient _tcpClient; - private Uri _uri; - private WsStream _wsStream; + private string _base64key; + private bool _client; + private Action _closeContext; + private WebSocketContext _context; + private string _extensions; + private AutoResetEvent _exitMessageLoop; + private Object _forClose; + private Object _forSend; + private string _protocol; + private string _protocols; + private volatile WsState _readyState; + private AutoResetEvent _receivePong; + private bool _secure; + private TcpClient _tcpClient; + private Uri _uri; + private WebHeaderCollection _headers; + private WsStream _wsStream; #endregion @@ -92,6 +93,7 @@ private WebSocket() _forSend = new Object(); _protocol = String.Empty; _readyState = WsState.CONNECTING; + _headers = new WebHeaderCollection(); } #endregion @@ -289,6 +291,12 @@ internal set { } } + public WebHeaderCollection Headers { + get { + return _headers; + } + } + #endregion #region Events @@ -578,6 +586,7 @@ private RequestHandshake createOpeningHandshake() if (!_protocols.IsNullOrEmpty()) req.AddHeader("Sec-WebSocket-Protocol", _protocols); req.AddHeader("Sec-WebSocket-Version", _version); + req.AddHeaders(_headers); return req; } @@ -587,6 +596,7 @@ private ResponseHandshake createResponseHandshake() { var res = new ResponseHandshake(); res.AddHeader("Sec-WebSocket-Accept", createResponseKey()); + res.AddHeaders(_headers); return res; } @@ -596,6 +606,7 @@ private ResponseHandshake createResponseHandshake(HttpStatusCode code) { var res = ResponseHandshake.CreateCloseResponse(code); res.AddHeader("Sec-WebSocket-Version", _version); + res.AddHeaders(_headers); return res; } diff --git a/websocket-sharp/bin/Debug/websocket-sharp.dll b/websocket-sharp/bin/Debug/websocket-sharp.dll index 4434ab516..0ca1de12c 100755 Binary files a/websocket-sharp/bin/Debug/websocket-sharp.dll and b/websocket-sharp/bin/Debug/websocket-sharp.dll differ diff --git a/websocket-sharp/bin/Debug/websocket-sharp.dll.mdb b/websocket-sharp/bin/Debug/websocket-sharp.dll.mdb index e075586be..559d6199a 100644 Binary files a/websocket-sharp/bin/Debug/websocket-sharp.dll.mdb and b/websocket-sharp/bin/Debug/websocket-sharp.dll.mdb differ