Fix for issue #76, added the WaitTime property to the WebSocketServer class
This commit is contained in:
parent
7458f65033
commit
ae6c41c64c
@ -302,6 +302,13 @@ namespace WebSocketSharp
|
|||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static string CheckIfValidWaitTime (this TimeSpan time)
|
||||||
|
{
|
||||||
|
return time <= TimeSpan.Zero
|
||||||
|
? "A wait time is zero or less."
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
internal static void Close (this HttpListenerResponse response, HttpStatusCode code)
|
internal static void Close (this HttpListenerResponse response, HttpStatusCode code)
|
||||||
{
|
{
|
||||||
response.StatusCode = (int) code;
|
response.StatusCode = (int) code;
|
||||||
|
@ -481,6 +481,29 @@ namespace WebSocketSharp.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the wait time for the response to the WebSocket Ping or Close.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>
|
||||||
|
/// A <see cref="TimeSpan"/> that represents the wait time. The default value is
|
||||||
|
/// the same as 1 second.
|
||||||
|
/// </value>
|
||||||
|
public TimeSpan WaitTime {
|
||||||
|
get {
|
||||||
|
return _services.WaitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
set {
|
||||||
|
var msg = _state.CheckIfStartable () ?? value.CheckIfValidWaitTime ();
|
||||||
|
if (msg != null) {
|
||||||
|
_logger.Error (msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_services.WaitTime = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the access to the WebSocket services provided by the server.
|
/// Gets the access to the WebSocket services provided by the server.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -67,16 +67,6 @@ namespace WebSocketSharp.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal TimeSpan WaitTime {
|
|
||||||
get {
|
|
||||||
return Sessions.WaitTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
set {
|
|
||||||
Sessions.WaitTime = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public Properties
|
#region Public Properties
|
||||||
@ -115,6 +105,15 @@ namespace WebSocketSharp.Server
|
|||||||
/// </value>
|
/// </value>
|
||||||
public abstract Type Type { get; }
|
public abstract Type Type { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the wait time for the response to the WebSocket Ping or Close.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>
|
||||||
|
/// A <see cref="TimeSpan"/> that represents the wait time. The default value is
|
||||||
|
/// the same as 1 second.
|
||||||
|
/// </value>
|
||||||
|
public abstract TimeSpan WaitTime { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Internal Methods
|
#region Internal Methods
|
||||||
@ -162,6 +161,7 @@ namespace WebSocketSharp.Server
|
|||||||
#region Private Fields
|
#region Private Fields
|
||||||
|
|
||||||
private Func<TBehavior> _initializer;
|
private Func<TBehavior> _initializer;
|
||||||
|
private Logger _logger;
|
||||||
private string _path;
|
private string _path;
|
||||||
private WebSocketSessionManager _sessions;
|
private WebSocketSessionManager _sessions;
|
||||||
|
|
||||||
@ -173,6 +173,7 @@ namespace WebSocketSharp.Server
|
|||||||
{
|
{
|
||||||
_path = path;
|
_path = path;
|
||||||
_initializer = initializer;
|
_initializer = initializer;
|
||||||
|
_logger = logger;
|
||||||
_sessions = new WebSocketSessionManager (logger);
|
_sessions = new WebSocketSessionManager (logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,6 +209,22 @@ namespace WebSocketSharp.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override TimeSpan WaitTime {
|
||||||
|
get {
|
||||||
|
return _sessions.WaitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
set {
|
||||||
|
var msg = _sessions.State.CheckIfStartable () ?? value.CheckIfValidWaitTime ();
|
||||||
|
if (msg != null) {
|
||||||
|
_logger.Error (msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_sessions.WaitTime = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Protected Methods
|
#region Protected Methods
|
||||||
|
@ -73,27 +73,6 @@ namespace WebSocketSharp.Server
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Internal Properties
|
|
||||||
|
|
||||||
internal TimeSpan WaitTime {
|
|
||||||
get {
|
|
||||||
return _waitTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
set {
|
|
||||||
lock (_sync) {
|
|
||||||
if (value == _waitTime)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_waitTime = value;
|
|
||||||
foreach (var host in _hosts.Values)
|
|
||||||
host.WaitTime = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Public Properties
|
#region Public Properties
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -201,6 +180,29 @@ namespace WebSocketSharp.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the wait time for the response to the WebSocket Ping or Close.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>
|
||||||
|
/// A <see cref="TimeSpan"/> that represents the wait time.
|
||||||
|
/// </value>
|
||||||
|
public TimeSpan WaitTime {
|
||||||
|
get {
|
||||||
|
return _waitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal set {
|
||||||
|
lock (_sync) {
|
||||||
|
if (value == _waitTime)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_waitTime = value;
|
||||||
|
foreach (var host in _hosts.Values)
|
||||||
|
host.WaitTime = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
@ -86,21 +86,6 @@ namespace WebSocketSharp.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal TimeSpan WaitTime {
|
|
||||||
get {
|
|
||||||
return _waitTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
set {
|
|
||||||
if (value == _waitTime)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_waitTime = value;
|
|
||||||
foreach (var session in Sessions)
|
|
||||||
session.Context.WebSocket.WaitTime = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public Properties
|
#region Public Properties
|
||||||
@ -224,6 +209,27 @@ namespace WebSocketSharp.Server
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the wait time for the response to the WebSocket Ping or Close.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>
|
||||||
|
/// A <see cref="TimeSpan"/> that represents the wait time.
|
||||||
|
/// </value>
|
||||||
|
public TimeSpan WaitTime {
|
||||||
|
get {
|
||||||
|
return _waitTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal set {
|
||||||
|
if (value == _waitTime)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_waitTime = value;
|
||||||
|
foreach (var session in Sessions)
|
||||||
|
session.Context.WebSocket.WaitTime = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
Loading…
Reference in New Issue
Block a user