Refactored TcpListenerWebSocketContext.cs

This commit is contained in:
sta 2014-02-22 16:21:55 +09:00
parent b3e8708f85
commit fa33e71611
3 changed files with 40 additions and 60 deletions

View File

@ -181,10 +181,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the collection of query string variables included in the request. /// Gets the query string variables included in the request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="NameValueCollection"/> that contains the collection of query string variables. /// A <see cref="NameValueCollection"/> that contains the query string variables.
/// </value> /// </value>
public override NameValueCollection QueryString { public override NameValueCollection QueryString {
get { get {

View File

@ -36,8 +36,8 @@ using System.Security.Principal;
namespace WebSocketSharp.Net.WebSockets namespace WebSocketSharp.Net.WebSockets
{ {
/// <summary> /// <summary>
/// Provides access to the WebSocket connection request information received by /// Provides the properties used for accessing the information in a WebSocket connection request
/// the <see cref="TcpListener"/>. /// received by the <see cref="TcpListener"/>.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// </remarks> /// </remarks>
@ -66,6 +66,7 @@ namespace WebSocketSharp.Net.WebSockets
_stream = WsStream.CreateServerStream (client, cert, secure); _stream = WsStream.CreateServerStream (client, cert, secure);
_request = _stream.ReadHandshake<HandshakeRequest> ( _request = _stream.ReadHandshake<HandshakeRequest> (
HandshakeRequest.Parse, 90000); HandshakeRequest.Parse, 90000);
_websocket = new WebSocket (this, logger); _websocket = new WebSocket (this, logger);
} }
@ -84,11 +85,10 @@ namespace WebSocketSharp.Net.WebSockets
#region Public Properties #region Public Properties
/// <summary> /// <summary>
/// Gets the cookies used in the WebSocket connection request. /// Gets the HTTP cookies included in the request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="WebSocketSharp.Net.CookieCollection"/> that contains the /// A <see cref="WebSocketSharp.Net.CookieCollection"/> that contains the cookies.
/// cookies.
/// </value> /// </value>
public override CookieCollection CookieCollection { public override CookieCollection CookieCollection {
get { get {
@ -97,10 +97,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the HTTP headers used in the WebSocket connection request. /// Gets the HTTP headers included in the request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="NameValueCollection"/> that contains the HTTP headers. /// A <see cref="NameValueCollection"/> that contains the headers.
/// </value> /// </value>
public override NameValueCollection Headers { public override NameValueCollection Headers {
get { get {
@ -109,11 +109,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the value of the Host header field used in the WebSocket connection /// Gets the value of the Host header included in the request.
/// request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="string"/> that represents the value of the Host header field. /// A <see cref="string"/> that represents the value of the Host header.
/// </value> /// </value>
public override string Host { public override string Host {
get { get {
@ -134,12 +133,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets a value indicating whether the client connected from the local /// Gets a value indicating whether the client connected from the local computer.
/// computer.
/// </summary> /// </summary>
/// <value> /// <value>
/// <c>true</c> if the client connected from the local computer; otherwise, /// <c>true</c> if the client connected from the local computer; otherwise, <c>false</c>.
/// <c>false</c>.
/// </value> /// </value>
public override bool IsLocal { public override bool IsLocal {
get { get {
@ -151,8 +148,7 @@ namespace WebSocketSharp.Net.WebSockets
/// Gets a value indicating whether the WebSocket connection is secured. /// Gets a value indicating whether the WebSocket connection is secured.
/// </summary> /// </summary>
/// <value> /// <value>
/// <c>true</c> if the WebSocket connection is secured; otherwise, /// <c>true</c> if the connection is secured; otherwise, <c>false</c>.
/// <c>false</c>.
/// </value> /// </value>
public override bool IsSecureConnection { public override bool IsSecureConnection {
get { get {
@ -161,12 +157,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets a value indicating whether the request is a WebSocket connection /// Gets a value indicating whether the request is a WebSocket connection request.
/// request.
/// </summary> /// </summary>
/// <value> /// <value>
/// <c>true</c> if the request is a WebSocket connection request; otherwise, /// <c>true</c> if the request is a WebSocket connection request; otherwise, <c>false</c>.
/// <c>false</c>.
/// </value> /// </value>
public override bool IsWebSocketRequest { public override bool IsWebSocketRequest {
get { get {
@ -175,12 +169,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the value of the Origin header field used in the WebSocket /// Gets the value of the Origin header included in the request.
/// connection request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="string"/> that represents the value of the Origin header /// A <see cref="string"/> that represents the value of the Origin header.
/// field.
/// </value> /// </value>
public override string Origin { public override string Origin {
get { get {
@ -189,11 +181,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the absolute path of the requested WebSocket URI. /// Gets the absolute path of the requested URI.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="string"/> that represents the absolute path of the requested /// A <see cref="string"/> that represents the absolute path of the requested URI.
/// WebSocket URI.
/// </value> /// </value>
public override string Path { public override string Path {
get { get {
@ -202,12 +193,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the collection of query string variables used in the WebSocket /// Gets the query string variables included in the request.
/// connection request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="NameValueCollection"/> that contains the collection of query /// A <see cref="NameValueCollection"/> that contains the query string variables.
/// string variables.
/// </value> /// </value>
public override NameValueCollection QueryString { public override NameValueCollection QueryString {
get { get {
@ -216,11 +205,10 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the WebSocket URI requested by the client. /// Gets the URI requested by the client.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="Uri"/> that represents the WebSocket URI requested by the /// A <see cref="Uri"/> that represents the requested URI.
/// client.
/// </value> /// </value>
public override Uri RequestUri { public override Uri RequestUri {
get { get {
@ -229,16 +217,14 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the value of the Sec-WebSocket-Key header field used in the /// Gets the value of the Sec-WebSocket-Key header included in the request.
/// WebSocket connection request.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// This property provides a part of the information used by the server to /// This property provides a part of the information used by the server to prove that it
/// prove that it received a valid WebSocket connection request. /// received a valid WebSocket connection request.
/// </remarks> /// </remarks>
/// <value> /// <value>
/// A <see cref="string"/> that represents the value of the Sec-WebSocket-Key /// A <see cref="string"/> that represents the value of the Sec-WebSocket-Key header.
/// header field.
/// </value> /// </value>
public override string SecWebSocketKey { public override string SecWebSocketKey {
get { get {
@ -247,15 +233,13 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the values of the Sec-WebSocket-Protocol header field used in the /// Gets the values of the Sec-WebSocket-Protocol header included in the request.
/// WebSocket connection request.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// This property represents the subprotocols requested from the client. /// This property represents the subprotocols requested by the client.
/// </remarks> /// </remarks>
/// <value> /// <value>
/// An IEnumerable&lt;string&gt; that contains the values of the /// An IEnumerable&lt;string&gt; that contains the values of the Sec-WebSocket-Protocol header.
/// Sec-WebSocket-Protocol header field.
/// </value> /// </value>
public override IEnumerable<string> SecWebSocketProtocols { public override IEnumerable<string> SecWebSocketProtocols {
get { get {
@ -267,15 +251,13 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the value of the Sec-WebSocket-Version header field used in the /// Gets the value of the Sec-WebSocket-Version header included in the request.
/// WebSocket connection request.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// This property represents the WebSocket protocol version of the connection. /// This property represents the WebSocket protocol version.
/// </remarks> /// </remarks>
/// <value> /// <value>
/// A <see cref="string"/> that represents the value of the /// A <see cref="string"/> that represents the value of the Sec-WebSocket-Version header.
/// Sec-WebSocket-Version header field.
/// </value> /// </value>
public override string SecWebSocketVersion { public override string SecWebSocketVersion {
get { get {
@ -296,8 +278,7 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the client information (identity, authentication information and /// Gets the client information (identity, authentication, and security roles).
/// security roles).
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="IPrincipal"/> that represents the client information. /// A <see cref="IPrincipal"/> that represents the client information.
@ -321,8 +302,8 @@ namespace WebSocketSharp.Net.WebSockets
} }
/// <summary> /// <summary>
/// Gets the WebSocket instance used for two-way communication between client /// Gets the <see cref="WebSocketSharp.WebSocket"/> instance used for two-way communication
/// and server. /// between client and server.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="WebSocketSharp.WebSocket"/>. /// A <see cref="WebSocketSharp.WebSocket"/>.
@ -369,8 +350,7 @@ namespace WebSocketSharp.Net.WebSockets
var res = new HandshakeResponse (HttpStatusCode.Unauthorized); var res = new HandshakeResponse (HttpStatusCode.Unauthorized);
res.Headers ["WWW-Authenticate"] = challenge; res.Headers ["WWW-Authenticate"] = challenge;
_stream.WriteHandshake (res); _stream.WriteHandshake (res);
_request = _stream.ReadHandshake<HandshakeRequest> ( _request = _stream.ReadHandshake<HandshakeRequest> (HandshakeRequest.Parse, 15000);
HandshakeRequest.Parse, 15000);
} }
internal void SetUser ( internal void SetUser (

View File

@ -127,10 +127,10 @@ namespace WebSocketSharp.Net.WebSockets
public abstract string Path { get; } public abstract string Path { get; }
/// <summary> /// <summary>
/// Gets the collection of query string variables included in the request. /// Gets the query string variables included in the request.
/// </summary> /// </summary>
/// <value> /// <value>
/// A <see cref="NameValueCollection"/> that contains the collection of query string variables. /// A <see cref="NameValueCollection"/> that contains the query string variables.
/// </value> /// </value>
public abstract NameValueCollection QueryString { get; } public abstract NameValueCollection QueryString { get; }