From 46f8088af3e5da3ed62eb58557284c5ee0de6ffc Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 11 Jan 2013 20:32:38 +0900 Subject: [PATCH] Added some XML documentation comments --- Example/bin/Release_Ubuntu/example.exe | Bin 7168 -> 7168 bytes .../bin/Release_Ubuntu/websocket-sharp.dll | Bin 152064 -> 151552 bytes Example2/Example2.pidb | Bin 7739 -> 7739 bytes websocket-sharp.userprefs | 2 +- websocket-sharp/ByteOrder.cs | 19 +- websocket-sharp/CloseEventArgs.cs | 91 +- websocket-sharp/ErrorEventArgs.cs | 31 +- websocket-sharp/Ext.cs | 34 +- websocket-sharp/Frame/CloseStatusCode.cs | 104 +- websocket-sharp/Frame/Fin.cs | 24 +- websocket-sharp/Frame/Mask.cs | 24 +- websocket-sharp/Frame/Opcode.cs | 31 +- websocket-sharp/Frame/PayloadData.cs | 2 +- websocket-sharp/Frame/Rsv.cs | 24 +- websocket-sharp/Frame/WsFrame.cs | 2 +- websocket-sharp/Handshake.cs | 4 +- websocket-sharp/MessageEventArgs.cs | 107 +- .../Net/HttpListenerWebSocketContext.cs | 2 +- websocket-sharp/Net/Security/SslStream.cs | 4 +- .../Sockets/TcpListenerWebSocketContext.cs | 2 +- websocket-sharp/Net/WebSocketContext.cs | 2 +- websocket-sharp/RequestHandshake.cs | 4 +- websocket-sharp/ResponseHandshake.cs | 4 +- websocket-sharp/Server/HttpServer.cs | 2 +- websocket-sharp/Server/IServiceHost.cs | 31 +- websocket-sharp/Server/ResponseEventArgs.cs | 2 +- websocket-sharp/Server/ServiceManager.cs | 2 +- websocket-sharp/Server/SessionManager.cs | 2 +- websocket-sharp/Server/WebSocketServer.cs | 2 +- websocket-sharp/Server/WebSocketServerBase.cs | 111 +- websocket-sharp/Server/WebSocketService.cs | 2 +- .../Server/WebSocketServiceHost.cs | 2 +- websocket-sharp/WebSocket.cs | 98 +- .../WsReceivedTooBigMessageException.cs | 2 +- websocket-sharp/WsState.cs | 35 +- websocket-sharp/WsStream.cs | 2 +- .../bin/Debug_Ubuntu/websocket-sharp.dll | Bin 153600 -> 153600 bytes .../bin/Debug_Ubuntu/websocket-sharp.dll.mdb | Bin 68892 -> 68820 bytes .../bin/Release_Ubuntu/websocket-sharp.dll | Bin 152064 -> 151552 bytes .../bin/Release_Ubuntu/websocket-sharp.xml | 1416 ++++++++++ websocket-sharp/doc/doc.sh | 33 + .../WebSocketSharp.Frame/CloseStatusCode.html | 361 +++ .../doc/html/WebSocketSharp.Frame/Fin.html | 262 ++ .../doc/html/WebSocketSharp.Frame/Mask.html | 262 ++ .../doc/html/WebSocketSharp.Frame/Opcode.html | 289 ++ .../WebSocketSharp.Frame/PayloadData.html | 859 ++++++ .../doc/html/WebSocketSharp.Frame/Rsv.html | 262 ++ .../html/WebSocketSharp.Frame/WsFrame.html | 1255 +++++++++ .../doc/html/WebSocketSharp.Frame/index.html | 270 ++ .../TcpListenerWebSocketContext.html | 902 ++++++ .../WebSocketSharp.Net.Sockets/index.html | 222 ++ .../AuthenticationSchemeSelector.html | 246 ++ .../AuthenticationSchemes.html | 296 ++ .../doc/html/WebSocketSharp.Net/Cookie.html | 1070 ++++++++ .../WebSocketSharp.Net/CookieCollection.html | 731 +++++ .../WebSocketSharp.Net/CookieException.html | 468 ++++ .../html/WebSocketSharp.Net/HttpListener.html | 854 ++++++ .../HttpListenerContext.html | 411 +++ .../HttpListenerException.html | 493 ++++ .../HttpListenerPrefixCollection.html | 684 +++++ .../HttpListenerRequest.html | 1265 +++++++++ .../HttpListenerResponse.html | 1080 ++++++++ .../HttpListenerWebSocketContext.html | 902 ++++++ .../WebSocketSharp.Net/HttpStatusCode.html | 608 +++++ .../html/WebSocketSharp.Net/HttpVersion.html | 376 +++ .../WebHeaderCollection.html | 1582 +++++++++++ .../WebSocketSharp.Net/WebSocketContext.html | 700 +++++ .../doc/html/WebSocketSharp.Net/index.html | 342 +++ .../WebSocketSharp.Server/HttpServer.html | 912 +++++++ .../WebSocketSharp.Server/IServiceHost.html | 451 +++ .../ResponseEventArgs.html | 391 +++ .../WebSocketSharp.Server/ServiceManager.html | 607 +++++ .../WebSocketSharp.Server/SessionManager.html | 857 ++++++ .../WebSocketServer.html | 925 +++++++ .../WebSocketServerBase.html | 844 ++++++ .../WebSocketService.html | 1282 +++++++++ .../WebSocketServiceHost`1.html | 1049 +++++++ .../doc/html/WebSocketSharp.Server/index.html | 286 ++ .../doc/html/WebSocketSharp/ByteOrder.html | 256 ++ .../html/WebSocketSharp/CloseEventArgs.html | 423 +++ .../html/WebSocketSharp/ErrorEventArgs.html | 313 +++ .../doc/html/WebSocketSharp/Ext.html | 2410 +++++++++++++++++ .../html/WebSocketSharp/MessageEventArgs.html | 381 +++ .../doc/html/WebSocketSharp/WebSocket.html | 1445 ++++++++++ .../WsReceivedTooBigMessageException.html | 351 +++ .../doc/html/WebSocketSharp/WsState.html | 273 ++ .../doc/html/WebSocketSharp/index.html | 278 ++ websocket-sharp/doc/html/index.html | 594 ++++ .../WebSocketSharp.Frame/CloseStatusCode.xml | 246 ++ .../doc/mdoc/WebSocketSharp.Frame/Fin.xml | 59 + .../doc/mdoc/WebSocketSharp.Frame/Mask.xml | 59 + .../doc/mdoc/WebSocketSharp.Frame/Opcode.xml | 123 + .../mdoc/WebSocketSharp.Frame/PayloadData.xml | 277 ++ .../doc/mdoc/WebSocketSharp.Frame/Rsv.xml | 59 + .../doc/mdoc/WebSocketSharp.Frame/WsFrame.xml | 486 ++++ .../TcpListenerWebSocketContext.xml | 258 ++ .../AuthenticationSchemeSelector.xml | 23 + .../AuthenticationSchemes.xml | 120 + .../doc/mdoc/WebSocketSharp.Net/Cookie.xml | 369 +++ .../WebSocketSharp.Net/CookieCollection.xml | 236 ++ .../WebSocketSharp.Net/CookieException.xml | 91 + .../mdoc/WebSocketSharp.Net/HttpListener.xml | 302 +++ .../HttpListenerContext.xml | 83 + .../HttpListenerException.xml | 99 + .../HttpListenerPrefixCollection.xml | 224 ++ .../HttpListenerRequest.xml | 509 ++++ .../HttpListenerResponse.xml | 401 +++ .../HttpListenerWebSocketContext.xml | 258 ++ .../WebSocketSharp.Net/HttpStatusCode.xml | 661 +++++ .../mdoc/WebSocketSharp.Net/HttpVersion.xml | 61 + .../WebHeaderCollection.xml | 639 +++++ .../WebSocketSharp.Net/WebSocketContext.xml | 223 ++ .../mdoc/WebSocketSharp.Server/HttpServer.xml | 325 +++ .../WebSocketSharp.Server/IServiceHost.xml | 119 + .../ResponseEventArgs.xml | 66 + .../WebSocketSharp.Server/ServiceManager.xml | 173 ++ .../WebSocketSharp.Server/SessionManager.xml | 300 ++ .../WebSocketSharp.Server/WebSocketServer.xml | 233 ++ .../WebSocketServerBase.xml | 310 +++ .../WebSocketService.xml | 508 ++++ .../WebSocketServiceHost`1.xml | 286 ++ .../doc/mdoc/WebSocketSharp/ByteOrder.xml | 51 + .../mdoc/WebSocketSharp/CloseEventArgs.xml | 84 + .../mdoc/WebSocketSharp/ErrorEventArgs.xml | 43 + .../doc/mdoc/WebSocketSharp/Ext.xml | 1333 +++++++++ .../mdoc/WebSocketSharp/MessageEventArgs.xml | 84 + .../doc/mdoc/WebSocketSharp/WebSocket.xml | 698 +++++ .../WsReceivedTooBigMessageException.xml | 47 + .../doc/mdoc/WebSocketSharp/WsState.xml | 86 + websocket-sharp/doc/mdoc/index.xml | 1366 ++++++++++ .../doc/mdoc/ns-WebSocketSharp.Frame.xml | 6 + .../mdoc/ns-WebSocketSharp.Net.Sockets.xml | 6 + .../doc/mdoc/ns-WebSocketSharp.Net.xml | 6 + .../doc/mdoc/ns-WebSocketSharp.Server.xml | 6 + .../doc/mdoc/ns-WebSocketSharp.xml | 6 + websocket-sharp/websocket-sharp.csproj | 6 + websocket-sharp/websocket-sharp.pidb | Bin 191929 -> 203927 bytes 137 files changed, 45431 insertions(+), 222 deletions(-) create mode 100644 websocket-sharp/bin/Release_Ubuntu/websocket-sharp.xml create mode 100755 websocket-sharp/doc/doc.sh create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/CloseStatusCode.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/Fin.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/Mask.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/Opcode.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/PayloadData.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/Rsv.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/WsFrame.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Frame/index.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/index.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/Cookie.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/CookieCollection.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/CookieException.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerContext.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerException.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerRequest.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerResponse.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerWebSocketContext.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpStatusCode.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/HttpVersion.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/WebHeaderCollection.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/WebSocketContext.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Net/index.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/HttpServer.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/IServiceHost.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/ResponseEventArgs.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/ServiceManager.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/SessionManager.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServer.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServerBase.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketService.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServiceHost`1.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp.Server/index.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/ByteOrder.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/CloseEventArgs.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/ErrorEventArgs.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/Ext.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/MessageEventArgs.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/WebSocket.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/WsReceivedTooBigMessageException.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/WsState.html create mode 100644 websocket-sharp/doc/html/WebSocketSharp/index.html create mode 100644 websocket-sharp/doc/html/index.html create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/CloseStatusCode.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Fin.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Mask.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Opcode.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/PayloadData.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Rsv.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Frame/WsFrame.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/Cookie.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieCollection.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieException.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerContext.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerException.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerRequest.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerResponse.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerWebSocketContext.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpStatusCode.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpVersion.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebHeaderCollection.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebSocketContext.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/HttpServer.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/IServiceHost.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/ResponseEventArgs.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/ServiceManager.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/SessionManager.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServer.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServerBase.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketService.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServiceHost`1.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/ByteOrder.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/CloseEventArgs.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/ErrorEventArgs.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/Ext.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/MessageEventArgs.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/WebSocket.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/WsReceivedTooBigMessageException.xml create mode 100644 websocket-sharp/doc/mdoc/WebSocketSharp/WsState.xml create mode 100644 websocket-sharp/doc/mdoc/index.xml create mode 100644 websocket-sharp/doc/mdoc/ns-WebSocketSharp.Frame.xml create mode 100644 websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.Sockets.xml create mode 100644 websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.xml create mode 100644 websocket-sharp/doc/mdoc/ns-WebSocketSharp.Server.xml create mode 100644 websocket-sharp/doc/mdoc/ns-WebSocketSharp.xml diff --git a/Example/bin/Release_Ubuntu/example.exe b/Example/bin/Release_Ubuntu/example.exe index 4cbeab44bc27b3542c3893475bbaf8863705cc45..7dd248ff9c9d2161114b41dad070b7829e7db53b 100755 GIT binary patch delta 87 zcmV-d0I2_fIDj~ihy#{z(6NgX3j}`>lb(~J3nT)Jp0mgcI0z8bI}wKeuIEdLmBpwD th@>8~5fuFalMNPs1CySAvyT?>0S_|(H2^LEGypIFH2^sPHM5TxaRcIa9?Sp$ delta 87 zcmZp$Xt0>j!F>4Iv5nor+$n;@{AHZXD^}0^GOuEDzt~4cej^4820aE4Y0O~BV7$3sqL3K?J#8R7 diff --git a/Example/bin/Release_Ubuntu/websocket-sharp.dll b/Example/bin/Release_Ubuntu/websocket-sharp.dll index 9ca89d17f19c5ead0cd36ee5cd2cffff6c98dbda..d3955bb444712c478560dfd4ecce277551cfd04f 100755 GIT binary patch literal 151552 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ľLN5GENG#~qT-z4l(r5i|r9e;yNk*~*7 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 z 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 - + diff --git a/websocket-sharp/ByteOrder.cs b/websocket-sharp/ByteOrder.cs index a2959f9d..df8013ea 100644 --- a/websocket-sharp/ByteOrder.cs +++ b/websocket-sharp/ByteOrder.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * ByteOrder.cs * * The MIT License @@ -28,11 +28,20 @@ using System; -namespace WebSocketSharp -{ +namespace WebSocketSharp { + + /// + /// Contains the values that indicate whether the byte order is a Little-endian or Big-endian. + /// public enum ByteOrder : byte { - LITTLE = 0x0, - BIG = 0x1 + /// + /// Indicates a Little-endian. + /// + LITTLE, + /// + /// Indicates a Big-endian. + /// + BIG } } diff --git a/websocket-sharp/CloseEventArgs.cs b/websocket-sharp/CloseEventArgs.cs index c5fdbaf4..495b6d33 100644 --- a/websocket-sharp/CloseEventArgs.cs +++ b/websocket-sharp/CloseEventArgs.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * CloseEventArgs.cs * * The MIT License @@ -30,41 +30,30 @@ using System; using System.Text; using WebSocketSharp.Frame; -namespace WebSocketSharp -{ +namespace WebSocketSharp { + + /// + /// Contains the event data associated with a event. + /// + /// + /// The event occurs when the WebSocket receives a close control frame or + /// the WebSocket.Close method is called. If you want to get the reason for closure, you should access the or + /// properties. + /// public class CloseEventArgs : MessageEventArgs { + #region Fields + private ushort _code; private string _reason; private bool _wasClean; - public ushort Code - { - get { - return _code; - } - } + #endregion - public string Reason - { - get { - return _reason; - } - } + #region Constructor - public bool WasClean - { - get { - return _wasClean; - } - - set { - _wasClean = value; - } - } - - public CloseEventArgs(PayloadData data) - : base(Opcode.CLOSE, data) + internal CloseEventArgs(PayloadData data) + : base(Opcode.CLOSE, data) { _code = (ushort)CloseStatusCode.NO_STATUS_CODE; _reason = String.Empty; @@ -79,5 +68,51 @@ namespace WebSocketSharp _reason = Encoding.UTF8.GetString(buffer); } } + + #endregion + + #region Properties + + /// + /// Gets the status code for closure. + /// + /// + /// A that contains a status code for closure. + /// + public ushort Code { + get { + return _code; + } + } + + /// + /// Gets the reason for closure. + /// + /// + /// A that contains a reason for closure. + /// + public string Reason { + get { + return _reason; + } + } + + /// + /// Indicates whether the connection closed cleanly or not. + /// + /// + /// true if the connection closed cleanly; otherwise, false. + /// + public bool WasClean { + get { + return _wasClean; + } + + internal set { + _wasClean = value; + } + } + + #endregion } } diff --git a/websocket-sharp/ErrorEventArgs.cs b/websocket-sharp/ErrorEventArgs.cs index 0f7c8d5c..329af9ef 100644 --- a/websocket-sharp/ErrorEventArgs.cs +++ b/websocket-sharp/ErrorEventArgs.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * ErrorEventArgs.cs * * The MIT License @@ -28,15 +28,36 @@ using System; -namespace WebSocketSharp -{ +namespace WebSocketSharp { + + /// + /// Contains the event data associated with a error event. + /// + /// + /// The error event occurs when this event sender gets an error. + /// If you want to get the error message, you should access the property. + /// public class ErrorEventArgs : EventArgs { - public string Message { get; private set; } + #region Constructor - public ErrorEventArgs(string message) + internal ErrorEventArgs(string message) { Message = message; } + + #endregion + + #region Property + + /// + /// Gets the error message. + /// + /// + /// A that contains a error message. + /// + public string Message { get; private set; } + + #endregion } } diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index 878d8603..f8d8818d 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * Ext.cs * IsPredefinedScheme and MaybeUri methods derived from System.Uri.cs * GetStatusDescription method derived from System.Net.HttpListenerResponse.cs @@ -116,16 +116,16 @@ namespace WebSocketSharp { } /// - /// Emit the specified delegate if is not . + /// Emit the specified EventHandler<TEventArgs> delegate if is not . /// /// - /// An to emit. + /// An EventHandler<TEventArgs> to emit. /// /// /// An that emits the . /// /// - /// An that contains the event data. + /// A TEventArgs that contains the event data. /// /// /// The type of the event data generated by the event. @@ -140,7 +140,7 @@ namespace WebSocketSharp { /// /// Determines whether the specified equals the specified as . - /// And save this specified as to the specified . + /// And save this specified as to the specified List<byte>. /// /// /// true if the parameter equals the parameter as ; otherwise, false. @@ -152,7 +152,7 @@ namespace WebSocketSharp { /// A to compare. /// /// - /// A to save the as . + /// A List<byte> to save the as . /// /// /// Is thrown when the parameter passed to a method is invalid because it is outside the allowable range of values as . @@ -290,7 +290,7 @@ namespace WebSocketSharp { /// Gets the name and value from the specified that contains a pair of name and value are separated by a separator string. /// /// - /// A that contains the name and value if any. + /// A KeyValuePair<string, string> that contains the name and value if any. /// /// /// A that contains a pair of name and value are separated by a separator string. @@ -434,7 +434,7 @@ namespace WebSocketSharp { /// true if the parameter is ; otherwise, false. /// /// - /// A to test. + /// A class to test. /// /// /// The type of the parameter. @@ -453,7 +453,7 @@ namespace WebSocketSharp { /// true if the parameter is ; otherwise, false. /// /// - /// A to test. + /// A class to test. /// /// /// An delegate that contains the method(s) called if the is . @@ -809,13 +809,13 @@ namespace WebSocketSharp { } /// - /// Executes the specified delegate times. + /// Executes the specified Action<ulong> delegate times. /// /// /// An that contains the number of times to execute. /// /// - /// An delegate that contains the method(s) to execute. + /// An Action<ulong> delegate that contains the method(s) to execute. /// A parameter to pass to this method(s) contains the zero-based count of iteration. /// public static void Times(this int n, Action act) @@ -825,13 +825,13 @@ namespace WebSocketSharp { } /// - /// Executes the specified delegate times. + /// Executes the specified Action<ulong> delegate times. /// /// /// A that contains the number of times to execute. /// /// - /// An delegate that contains the method(s) to execute. + /// An Action<ulong> delegate that contains the method(s) to execute. /// A parameter to pass to this method(s) contains the zero-based count of iteration. /// public static void Times(this long n, Action act) @@ -841,13 +841,13 @@ namespace WebSocketSharp { } /// - /// Executes the specified delegate times. + /// Executes the specified Action<ulong> delegate times. /// /// /// A that contains the number of times to execute. /// /// - /// An delegate that contains the method(s) to execute. + /// An Action<ulong> delegate that contains the method(s) to execute. /// A parameter to pass to this method(s) contains the zero-based count of iteration. /// public static void Times(this uint n, Action act) @@ -857,13 +857,13 @@ namespace WebSocketSharp { } /// - /// Executes the specified delegate times. + /// Executes the specified Action<ulong> delegate times. /// /// /// A that contains the number of times to execute. /// /// - /// An delegate that contains the method(s) to execute. + /// An Action<ulong> delegate that contains the method(s) to execute. /// A parameter to pass to this method(s) contains the zero-based count of iteration. /// public static void Times(this ulong n, Action act) diff --git a/websocket-sharp/Frame/CloseStatusCode.cs b/websocket-sharp/Frame/CloseStatusCode.cs index 55ac982b..60863880 100644 --- a/websocket-sharp/Frame/CloseStatusCode.cs +++ b/websocket-sharp/Frame/CloseStatusCode.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * CloseStatusCode.cs * * The MIT License @@ -28,32 +28,84 @@ using System; -namespace WebSocketSharp.Frame -{ +namespace WebSocketSharp.Frame { + + /// + /// Contains the values of the status codes for the WebSocket connection closure. + /// + /// + /// + /// The CloseStatusCode enumeration contains the values of the status codes for the WebSocket connection closure + /// defined in RFC 6455 for the WebSocket protocol. + /// + /// + /// "Reserved value" must not be set as a status code in a close control frame by an endpoint. + /// It is designated for use in applications expecting a status code to indicate that connection + /// was closed due to a system grounds. + /// + /// public enum CloseStatusCode : ushort { - /* - * Close Status Code - * - * Defined Status Codes: http://tools.ietf.org/html/rfc6455#section-7.4.1 - * - * "Reserved value" MUST NOT be set as a status code in a Close control frame by an endpoint. - * It is designated for use in applications expecting a status code to indicate that connection - * was closed due to a system grounds. - * - */ - NORMAL = 1000, // Normal closure. - AWAY = 1001, // A Server going down or a browser having navigated away from a page. - PROTOCOL_ERROR = 1002, // Terminating the connection due to a protocol error. - INCORRECT_DATA = 1003, // Received a type of data it cannot accept. - UNDEFINED = 1004, // Reserved value. Still undefined. - NO_STATUS_CODE = 1005, // Reserved value. - ABNORMAL = 1006, // Reserved value. Connection was closed abnormally. - INCONSISTENT_DATA = 1007, // Received data within a message that was not consistent with the type of the message. - POLICY_VIOLATION = 1008, // Received a message that violates its policy. - TOO_BIG = 1009, // Received a message that is too big. - IGNORE_EXTENSION = 1010, // Server ignored negotiated extensions. - SERVER_ERROR = 1011, // Server encountered an unexpected condition. - HANDSHAKE_FAILURE = 1015 // Reserved value. Failure to establish a connection. + /// + /// Equivalent to close status 1000. Indicates a normal closure. + /// + NORMAL = 1000, + /// + /// Equivalent to close status 1001. Indicates that an endpoint is "going away". + /// + AWAY = 1001, + /// + /// Equivalent to close status 1002. Indicates that an endpoint is terminating the connection + /// due to a protocol error. + /// + PROTOCOL_ERROR = 1002, + /// + /// Equivalent to close status 1003. Indicates that an endpoint is terminating the connection + /// because it has received a type of data it cannot accept. + /// + INCORRECT_DATA = 1003, + /// + /// Equivalent to close status 1004. Still undefined. Reserved value. + /// + UNDEFINED = 1004, + /// + /// Equivalent to close status 1005. Indicates that no status code was actually present. Reserved value. + /// + NO_STATUS_CODE = 1005, + /// + /// Equivalent to close status 1006. Indicates that the connection was closed abnormally. Reserved value. + /// + ABNORMAL = 1006, + /// + /// Equivalent to close status 1007. Indicates that an endpoint is terminating the connection + /// because it has received data within a message that was not consistent with the type of the message. + /// + INCONSISTENT_DATA = 1007, + /// + /// Equivalent to close status 1008. Indicates that an endpoint is terminating the connection + /// because it has received a message that violates its policy. + /// + POLICY_VIOLATION = 1008, + /// + /// Equivalent to close status 1009. Indicates that an endpoint is terminating the connection + /// because it has received a message that is too big for it to process. + /// + TOO_BIG = 1009, + /// + /// Equivalent to close status 1010. Indicates that an endpoint (client) is terminating the connection + /// because it has expected the server to negotiate one or more extension, but the server didn't return + /// them in the response message of the WebSocket handshake. + /// + IGNORE_EXTENSION = 1010, + /// + /// Equivalent to close status 1011. Indicates that a server is terminating the connection because it encountered + /// an unexpected condition that prevented it from fulfilling the request. + /// + SERVER_ERROR = 1011, + /// + /// Equivalent to close status 1015. Indicates that the connection was closed due to a failure to perform + /// a TLS handshake. Reserved value. + /// + TLS_HANDSHAKE_FAILURE = 1015 } } diff --git a/websocket-sharp/Frame/Fin.cs b/websocket-sharp/Frame/Fin.cs index 87428eb3..ecd586b7 100644 --- a/websocket-sharp/Frame/Fin.cs +++ b/websocket-sharp/Frame/Fin.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * Fin.cs * * The MIT License @@ -28,11 +28,29 @@ using System; -namespace WebSocketSharp.Frame -{ +namespace WebSocketSharp.Frame { + + /// + /// Contains the values of the FIN bit in the WebSocket data frame. + /// + /// + /// + /// The Fin enumeration contains the values of the FIN bit defined in + /// RFC 6455 for the WebSocket protocol. + /// + /// + /// The FIN bit indicates whether a WebSocket frame is the final fragment in a message. + /// + /// public enum Fin : byte { + /// + /// Equivalent to numeric value 0. Indicates that more frames follow. + /// MORE = 0x0, + /// + /// Equivalent to numeric value 1. Indicates a final frame. + /// FINAL = 0x1 } } diff --git a/websocket-sharp/Frame/Mask.cs b/websocket-sharp/Frame/Mask.cs index 62e828f8..e741be71 100644 --- a/websocket-sharp/Frame/Mask.cs +++ b/websocket-sharp/Frame/Mask.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * Mask.cs * * The MIT License @@ -28,11 +28,29 @@ using System; -namespace WebSocketSharp.Frame -{ +namespace WebSocketSharp.Frame { + + /// + /// Contains the values of the MASK bit in the WebSocket data frame. + /// + /// + /// + /// The Mask enumeration contains the values of the MASK bit defined in + /// RFC 6455 for the WebSocket protocol. + /// + /// + /// The MASK bit indicates whether the payload data in a WebSocket frame is masked. + /// + /// public enum Mask : byte { + /// + /// Equivalent to numeric value 0. Indicates that the payload data in a frame is not masked, no masking key in this frame. + /// UNMASK = 0x0, + /// + /// Equivalent to numeric value 1. Indicates that the payload data in a frame is masked, a masking key is present in this frame. + /// MASK = 0x1 } } diff --git a/websocket-sharp/Frame/Opcode.cs b/websocket-sharp/Frame/Opcode.cs index d04155c4..36b99baa 100644 --- a/websocket-sharp/Frame/Opcode.cs +++ b/websocket-sharp/Frame/Opcode.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * Opcode.cs * * The MIT License @@ -28,16 +28,41 @@ using System; -namespace WebSocketSharp.Frame -{ +namespace WebSocketSharp.Frame { + + /// + /// Contains the values of the opcodes that denotes the frame type of the WebSocket frame. + /// + /// + /// The Opcode enumeration contains the values of the opcodes defined in + /// RFC 6455 for the WebSocket protocol. + /// [Flags] public enum Opcode : byte { + /// + /// Equivalent to numeric value 0. Indicates a continuation frame. + /// CONT = 0x0, + /// + /// Equivalent to numeric value 1. Indicates a text frame. + /// TEXT = 0x1, + /// + /// Equivalent to numeric value 2. Indicates a binary frame. + /// BINARY = 0x2, + /// + /// Equivalent to numeric value 8. Indicates a connection close frame. + /// CLOSE = 0x8, + /// + /// Equivalent to numeric value 9. Indicates a ping frame. + /// PING = 0x9, + /// + /// Equivalent to numeric value 10. Indicates a pong frame. + /// PONG = 0xa } } diff --git a/websocket-sharp/Frame/PayloadData.cs b/websocket-sharp/Frame/PayloadData.cs index 9d599337..93e57c43 100644 --- a/websocket-sharp/Frame/PayloadData.cs +++ b/websocket-sharp/Frame/PayloadData.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * PayloadData.cs * * The MIT License diff --git a/websocket-sharp/Frame/Rsv.cs b/websocket-sharp/Frame/Rsv.cs index 1d31f854..90845764 100644 --- a/websocket-sharp/Frame/Rsv.cs +++ b/websocket-sharp/Frame/Rsv.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * Rsv.cs * * The MIT License @@ -28,11 +28,29 @@ using System; -namespace WebSocketSharp.Frame -{ +namespace WebSocketSharp.Frame { + + /// + /// Contains the values of the reserved bit in the WebSocket data frame. + /// + /// + /// + /// The Rsv enumeration contains the values of the reserved bit (RSV1, RSV2, RSV3) defined in + /// RFC 6455 for the WebSocket protocol. + /// + /// + /// The reserved bit must be zero unless an extension is negotiated that defines meanings for non-zero values. + /// + /// public enum Rsv : byte { + /// + /// Equivalent to numeric value 0. + /// OFF = 0x0, + /// + /// Equivalent to numeric value 1. + /// ON = 0x1 } } diff --git a/websocket-sharp/Frame/WsFrame.cs b/websocket-sharp/Frame/WsFrame.cs index 8891a658..c0749ecd 100644 --- a/websocket-sharp/Frame/WsFrame.cs +++ b/websocket-sharp/Frame/WsFrame.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WsFrame.cs * * The MIT License diff --git a/websocket-sharp/Handshake.cs b/websocket-sharp/Handshake.cs index 94618f8b..7ccd8383 100644 --- a/websocket-sharp/Handshake.cs +++ b/websocket-sharp/Handshake.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * Handshake.cs * * The MIT License @@ -33,7 +33,7 @@ using WebSocketSharp.Net; namespace WebSocketSharp { - public abstract class Handshake { + internal abstract class Handshake { #region Field diff --git a/websocket-sharp/MessageEventArgs.cs b/websocket-sharp/MessageEventArgs.cs index 393f8e8c..a93a01a0 100644 --- a/websocket-sharp/MessageEventArgs.cs +++ b/websocket-sharp/MessageEventArgs.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * MessageEventArgs.cs * * The MIT License @@ -30,58 +30,77 @@ using System; using System.Text; using WebSocketSharp.Frame; -namespace WebSocketSharp -{ +namespace WebSocketSharp { + + /// + /// Contains the event data associated with a event. + /// + /// + /// The event occurs when the WebSocket receives a text or binary data frame. + /// If you want to get the received data, you should access the or + /// properties. + /// public class MessageEventArgs : EventArgs { - private Opcode _type; + #region Fields + private PayloadData _data; + private Opcode _type; - public Opcode Type - { - get - { - return _type; - } - } + #endregion - public string Data - { - get - { - if (((Opcode.TEXT | Opcode.PING | Opcode.PONG) & _type) == _type) - { - if (_data.Length > 0) - { - return Encoding.UTF8.GetString(_data.ToBytes()); - } - else - { - return String.Empty; - } - } + #region Constructor - return _type.ToString(); - } - } - - public byte[] RawData - { - get - { - return _data.ToBytes(); - } - } - - public MessageEventArgs(string data) - : this(Opcode.TEXT, new PayloadData(data)) - { - } - - public MessageEventArgs(Opcode type, PayloadData data) + internal MessageEventArgs(Opcode type, PayloadData data) { _type = type; _data = data; } + + #endregion + + #region Properties + + /// + /// Gets the received data as a . + /// + /// + /// A that contains a received data. + /// + public string Data { + get { + return ((Opcode.TEXT | Opcode.PING | Opcode.PONG) & _type) == _type + ? _data.Length > 0 + ? Encoding.UTF8.GetString(_data.ToBytes()) + : String.Empty + : _type.ToString(); + } + } + + /// + /// Gets the received data as an array of . + /// + /// + /// An array of that contains a received data. + /// + public byte[] RawData { + get { + return _data.ToBytes(); + } + } + + /// + /// Gets the type of received data. + /// + /// + /// One of the that indicates the type of received data. + /// + public Opcode Type { + get { + return _type; + } + } + + #endregion } } diff --git a/websocket-sharp/Net/HttpListenerWebSocketContext.cs b/websocket-sharp/Net/HttpListenerWebSocketContext.cs index 7ed7456c..d776855a 100644 --- a/websocket-sharp/Net/HttpListenerWebSocketContext.cs +++ b/websocket-sharp/Net/HttpListenerWebSocketContext.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * HttpListenerWebSocketContext.cs * * The MIT License diff --git a/websocket-sharp/Net/Security/SslStream.cs b/websocket-sharp/Net/Security/SslStream.cs index fcb3635c..86a387ab 100644 --- a/websocket-sharp/Net/Security/SslStream.cs +++ b/websocket-sharp/Net/Security/SslStream.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * SslStream.cs * * The MIT License @@ -32,7 +32,7 @@ using System.Net.Sockets; namespace WebSocketSharp.Net.Security { - public class SslStream : System.Net.Security.SslStream + internal class SslStream : System.Net.Security.SslStream { #region Constructors diff --git a/websocket-sharp/Net/Sockets/TcpListenerWebSocketContext.cs b/websocket-sharp/Net/Sockets/TcpListenerWebSocketContext.cs index 00179863..5aed7f14 100644 --- a/websocket-sharp/Net/Sockets/TcpListenerWebSocketContext.cs +++ b/websocket-sharp/Net/Sockets/TcpListenerWebSocketContext.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * TcpListenerWebSocketContext.cs * * The MIT License diff --git a/websocket-sharp/Net/WebSocketContext.cs b/websocket-sharp/Net/WebSocketContext.cs index 55f86480..953563a2 100644 --- a/websocket-sharp/Net/WebSocketContext.cs +++ b/websocket-sharp/Net/WebSocketContext.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WebSocketContext.cs * * The MIT License diff --git a/websocket-sharp/RequestHandshake.cs b/websocket-sharp/RequestHandshake.cs index eadb467b..16ea5d9e 100644 --- a/websocket-sharp/RequestHandshake.cs +++ b/websocket-sharp/RequestHandshake.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * RequestHandshake.cs * * The MIT License @@ -33,7 +33,7 @@ using WebSocketSharp.Net; namespace WebSocketSharp { - public class RequestHandshake : Handshake + internal class RequestHandshake : Handshake { #region Private Field diff --git a/websocket-sharp/ResponseHandshake.cs b/websocket-sharp/ResponseHandshake.cs index 8995003d..9d7c7eca 100644 --- a/websocket-sharp/ResponseHandshake.cs +++ b/websocket-sharp/ResponseHandshake.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * ResponseHandshake.cs * * The MIT License @@ -33,7 +33,7 @@ using WebSocketSharp.Net; namespace WebSocketSharp { - public class ResponseHandshake : Handshake + internal class ResponseHandshake : Handshake { #region Constructor diff --git a/websocket-sharp/Server/HttpServer.cs b/websocket-sharp/Server/HttpServer.cs index a46924a6..072f4acd 100644 --- a/websocket-sharp/Server/HttpServer.cs +++ b/websocket-sharp/Server/HttpServer.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * HttpServer.cs * * The MIT License diff --git a/websocket-sharp/Server/IServiceHost.cs b/websocket-sharp/Server/IServiceHost.cs index 07d3b583..ee07ce07 100644 --- a/websocket-sharp/Server/IServiceHost.cs +++ b/websocket-sharp/Server/IServiceHost.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * IServiceHost.cs * * The MIT License @@ -30,12 +30,41 @@ using System; namespace WebSocketSharp.Server { + /// + /// Exposes the methods and property for the WebSocket service host. + /// + /// + /// public interface IServiceHost { + /// + /// Indicates whether the WebSocket service host closes the connection to a inactive service client. + /// + /// + /// true if the WebSocket service host closes the connection to a inactive service client; otherwise, false. + /// bool Sweeped { get; set; } + /// + /// Binds the specified . + /// + /// + /// An to bind. + /// void BindWebSocket(WebSocket socket); + /// + /// Broadcasts the specified . + /// + /// + /// A to broadcast. + /// void Broadcast(string data); + /// + /// Starts the WebSocket service host. + /// void Start(); + /// + /// Stops the WebSocket service host. + /// void Stop(); } } diff --git a/websocket-sharp/Server/ResponseEventArgs.cs b/websocket-sharp/Server/ResponseEventArgs.cs index 81a651b4..457b3fe6 100644 --- a/websocket-sharp/Server/ResponseEventArgs.cs +++ b/websocket-sharp/Server/ResponseEventArgs.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * ResponseEventArgs.cs * * The MIT License diff --git a/websocket-sharp/Server/ServiceManager.cs b/websocket-sharp/Server/ServiceManager.cs index f23bf734..7f294ad1 100644 --- a/websocket-sharp/Server/ServiceManager.cs +++ b/websocket-sharp/Server/ServiceManager.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * ServiceManager.cs * * The MIT License diff --git a/websocket-sharp/Server/SessionManager.cs b/websocket-sharp/Server/SessionManager.cs index 8c5b0299..3ea24a85 100644 --- a/websocket-sharp/Server/SessionManager.cs +++ b/websocket-sharp/Server/SessionManager.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * SessionManager.cs * * The MIT License diff --git a/websocket-sharp/Server/WebSocketServer.cs b/websocket-sharp/Server/WebSocketServer.cs index 5d84e432..bcfbb778 100644 --- a/websocket-sharp/Server/WebSocketServer.cs +++ b/websocket-sharp/Server/WebSocketServer.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WebSocketServer.cs * * A C# implementation of the WebSocket protocol server. diff --git a/websocket-sharp/Server/WebSocketServerBase.cs b/websocket-sharp/Server/WebSocketServerBase.cs index 351c6f1c..940f78c7 100644 --- a/websocket-sharp/Server/WebSocketServerBase.cs +++ b/websocket-sharp/Server/WebSocketServerBase.cs @@ -1,10 +1,10 @@ #region MIT License -/** +/* * WebSocketServerBase.cs * * The MIT License * - * Copyright (c) 2012 sta.blockhead + * Copyright (c) 2012-2013 sta.blockhead * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,6 +34,12 @@ using System.Threading; namespace WebSocketSharp.Server { + /// + /// Provides the basic functions of the server that receives the WebSocket connection requests. + /// + /// + /// The WebSocketServerBase class is an abstract class. + /// public abstract class WebSocketServerBase { #region Fields @@ -50,11 +56,27 @@ namespace WebSocketSharp.Server { #region Constructors + /// + /// Initializes a new instance of the class. + /// protected WebSocketServerBase() { _isSelfHost = false; } + /// + /// Initializes a new instance of the class that listens for incoming connection attempts + /// on the specified WebSocket URL. + /// + /// + /// A that contains a WebSocket URL. + /// + /// + /// is . + /// + /// + /// is invalid. + /// protected WebSocketServerBase(string url) { if (url.IsNull()) @@ -68,6 +90,36 @@ namespace WebSocketSharp.Server { init(uri); } + /// + /// Initializes a new instance of the class that listens for incoming connection attempts + /// on the specified , , and . + /// + /// + /// An that contains a local IP address. + /// + /// + /// An that contains a port number. + /// + /// + /// A that contains a absolute path. + /// + /// + /// A that indicates providing a secure connection or not. (true indicates providing a secure connection.) + /// + /// + /// Either or is . + /// + /// + /// + /// is invalid. + /// + /// + /// -or- + /// + /// + /// Pair of and is invalid. + /// + /// protected WebSocketServerBase(IPAddress address, int port, string absPath, bool secure) { if (address.IsNull()) @@ -102,6 +154,12 @@ namespace WebSocketSharp.Server { #region Protected Property + /// + /// Gets or sets the WebSocket URL on which to listen for incoming connection attempts. + /// + /// + /// A that contains a WebSocket URL. + /// protected Uri BaseUri { get { @@ -117,24 +175,48 @@ namespace WebSocketSharp.Server { #region Public Properties + /// + /// Gets the local IP address on which to listen for incoming connection attempts. + /// + /// + /// A that contains a local IP address. + /// public IPAddress Address { get { return _address; } } + /// + /// Gets a value indicating whether this server is secure. + /// + /// + /// true if this server is secure; otherwise, false. + /// public bool IsSecure { get { return _isSecure; } } + /// + /// Gets a value indicating whether this server is self host. + /// + /// + /// true if this server is self host; otherwise, false. + /// public bool IsSelfHost { get { return _isSelfHost; } } - + + /// + /// Gets the port on which to listen for incoming connection attempts. + /// + /// + /// An that contains a port number. + /// public int Port { get { return _port; @@ -143,8 +225,11 @@ namespace WebSocketSharp.Server { #endregion - #region Events + #region Event + /// + /// Occurs when this server gets an error. + /// public event EventHandler OnError; #endregion @@ -249,8 +334,20 @@ namespace WebSocketSharp.Server { #region Protected Methods + /// + /// Accepts the WebSocket connection. + /// + /// + /// A that contains the WebSocket connection. + /// protected abstract void AcceptWebSocket(TcpClient client); + /// + /// Occurs the event with the specified . + /// + /// + /// A that contains an error message. + /// protected virtual void Error(string message) { onError(message); @@ -260,6 +357,9 @@ namespace WebSocketSharp.Server { #region Public Methods + /// + /// Starts to receive the WebSocket connection requests. + /// public virtual void Start() { if (!_isSelfHost) @@ -269,6 +369,9 @@ namespace WebSocketSharp.Server { startAcceptClientThread(); } + /// + /// Stops receiving the WebSocket connection requests. + /// public virtual void Stop() { if (!_isSelfHost) diff --git a/websocket-sharp/Server/WebSocketService.cs b/websocket-sharp/Server/WebSocketService.cs index e8e379c6..da246cb3 100644 --- a/websocket-sharp/Server/WebSocketService.cs +++ b/websocket-sharp/Server/WebSocketService.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WebSocketService.cs * * The MIT License diff --git a/websocket-sharp/Server/WebSocketServiceHost.cs b/websocket-sharp/Server/WebSocketServiceHost.cs index 88d3d0b3..eb03e240 100644 --- a/websocket-sharp/Server/WebSocketServiceHost.cs +++ b/websocket-sharp/Server/WebSocketServiceHost.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WebSocketServiceHost.cs * * A C# implementation of the WebSocket protocol server. diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index 5c001eef..45be208a 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WebSocket.cs * * A C# implementation of the WebSocket interface. @@ -31,6 +31,7 @@ #endregion using System; +using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; @@ -80,8 +81,9 @@ namespace WebSocketSharp { private volatile WsState _readyState; private AutoResetEvent _receivePong; private TcpClient _tcpClient; + private List _unsentBuffer; + private volatile uint _unsentCount; private Uri _uri; - private SynchronizedCollection _unTransmittedBuffer; private WsStream _wsStream; #endregion @@ -95,12 +97,13 @@ namespace WebSocketSharp { _forSend = new Object(); _protocol = String.Empty; _readyState = WsState.CONNECTING; - _unTransmittedBuffer = new SynchronizedCollection(); + _unsentBuffer = new List(); + _unsentCount = 0; } #endregion - #region Internal Constructor + #region Internal Constructors internal WebSocket(HttpListenerWebSocketContext context) : this() @@ -221,25 +224,6 @@ namespace WebSocketSharp { #region Public Properties - /// - /// Gets the amount of untransmitted data. - /// - /// - /// The number of bytes of untransmitted data. - /// - public ulong BufferedAmount { - get { - lock (_unTransmittedBuffer.SyncRoot) - { - ulong bufferedAmount = 0; - foreach (WsFrame frame in _unTransmittedBuffer) - bufferedAmount += frame.PayloadLength; - - return bufferedAmount; - } - } - } - /// /// Gets the extensions selected by the server. /// @@ -295,7 +279,7 @@ namespace WebSocketSharp { /// Gets the state of the connection. /// /// - /// A . By default, WsState.CONNECTING. + /// One of the . By default, WsState.CONNECTING. /// public WsState ReadyState { get { @@ -304,14 +288,29 @@ namespace WebSocketSharp { } /// - /// Gets the untransmitted WebSocket frames. + /// Gets the buffer that contains unsent WebSocket frames. /// /// - /// A IList<WsFrame> that contains the untransmitted WebSocket frames. + /// An array of that contains unsent WebSocket frames. /// - public IList UnTransmittedBuffer { + public byte[] UnsentBuffer { get { - return _unTransmittedBuffer; + lock (((ICollection)_unsentBuffer).SyncRoot) + { + return _unsentBuffer.ToArray(); + } + } + } + + /// + /// Gets the count of unsent WebSocket frames. + /// + /// + /// A that contains the count of unsent WebSocket frames. + /// + public uint UnsentCount { + get { + return _unsentCount; } } @@ -366,7 +365,7 @@ namespace WebSocketSharp { if (!isValidRequest(req, out msg)) { onError(msg); - close(CloseStatusCode.HANDSHAKE_FAILURE, msg); + close(CloseStatusCode.ABNORMAL, msg); return; } @@ -381,7 +380,7 @@ namespace WebSocketSharp { var code = data.ToBytes().SubArray(0, 2).To(ByteOrder.BIG); if (code == (ushort)CloseStatusCode.NO_STATUS_CODE || code == (ushort)CloseStatusCode.ABNORMAL || - code == (ushort)CloseStatusCode.HANDSHAKE_FAILURE) + code == (ushort)CloseStatusCode.TLS_HANDSHAKE_FAILURE) return false; } @@ -586,7 +585,7 @@ namespace WebSocketSharp { if (!isValidResponse(res, out msg)) { onError(msg); - close(CloseStatusCode.HANDSHAKE_FAILURE, msg); + close(CloseStatusCode.ABNORMAL, msg); return; } @@ -936,35 +935,28 @@ namespace WebSocketSharp { if (_readyState == WsState.CONNECTING || _readyState == WsState.CLOSED) { - var msg = "The WebSocket connection isn't established or has been closed."; - onError(msg); + onError("The WebSocket connection isn't established or has been closed."); return false; } try { - if (_unTransmittedBuffer.Count == 0) + if (_unsentCount == 0 && !_wsStream.IsNull()) { - if (!_wsStream.IsNull()) - { - _wsStream.WriteFrame(frame); - return true; - } + _wsStream.WriteFrame(frame); + return true; } - if (_unTransmittedBuffer.Count > 0) - { - _unTransmittedBuffer.Add(frame); - var msg = "Current data can not be sent because there is untransmitted data."; - onError(msg); - } + unsend(frame); + onError("Current data can not be sent because there is unsent data."); return false; } catch (Exception ex) { - _unTransmittedBuffer.Add(frame); + unsend(frame); onError(ex.Message); + return false; } } @@ -985,8 +977,7 @@ namespace WebSocketSharp { { if (_readyState != WsState.OPEN) { - var msg = "The WebSocket connection isn't established or has been closed."; - onError(msg); + onError("The WebSocket connection isn't established or has been closed."); return; } @@ -1144,6 +1135,15 @@ namespace WebSocketSharp { return uriString.TryCreateWebSocketUri(out result, out message); } + private void unsend(WsFrame frame) + { + lock (((ICollection)_unsentBuffer).SyncRoot) + { + _unsentCount++; + _unsentBuffer.AddRange(frame.ToBytes()); + } + } + private void writeHandshake(Handshake handshake) { _wsStream.WriteHandshake(handshake); @@ -1256,7 +1256,7 @@ namespace WebSocketSharp { catch (Exception ex) { onError(ex.Message); - close(CloseStatusCode.HANDSHAKE_FAILURE, "An exception has occured."); + close(CloseStatusCode.ABNORMAL, "An exception has occured."); } } diff --git a/websocket-sharp/WsReceivedTooBigMessageException.cs b/websocket-sharp/WsReceivedTooBigMessageException.cs index 057707f2..9d4b5266 100644 --- a/websocket-sharp/WsReceivedTooBigMessageException.cs +++ b/websocket-sharp/WsReceivedTooBigMessageException.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WsReceivedTooBigMessageException.cs * * The MIT License diff --git a/websocket-sharp/WsState.cs b/websocket-sharp/WsState.cs index 130c6691..422da31b 100644 --- a/websocket-sharp/WsState.cs +++ b/websocket-sharp/WsState.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WsState.cs * * The MIT License @@ -28,13 +28,32 @@ using System; -namespace WebSocketSharp -{ - public enum WsState +namespace WebSocketSharp { + + /// + /// Contains the values of the state of the WebSocket connection. + /// + /// + /// The WsState enumeration contains the values of the state of the WebSocket connection defined in + /// The WebSocket API. + /// + public enum WsState : ushort { - CONNECTING, - OPEN, - CLOSING, - CLOSED + /// + /// Equivalent to numeric value 0. Indicates that the connection has not yet been established. + /// + CONNECTING = 0, + /// + /// Equivalent to numeric value 1. Indicates that the connection is established and communication is possible. + /// + OPEN = 1, + /// + /// Equivalent to numeric value 2. Indicates that the connection is going through the closing handshake, or the Close method has been invoked. + /// + CLOSING = 2, + /// + /// Equivalent to numeric value 3. Indicates that the connection has been closed or could not be opened. + /// + CLOSED = 3 } } diff --git a/websocket-sharp/WsStream.cs b/websocket-sharp/WsStream.cs index cdd5ba41..4f6c6448 100644 --- a/websocket-sharp/WsStream.cs +++ b/websocket-sharp/WsStream.cs @@ -1,5 +1,5 @@ #region MIT License -/** +/* * WsStream.cs * * The MIT License diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll index 0b4a51ac4bb1ef0a17e245f1f01726ba1a400ed2..f3b46164961513ab85db68c076f26dcbaed3ddb0 100755 GIT binary patch literal 153600 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

9h$s6`-&2CCe_O@}n-xtQM&P!&l}3h* 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

wQV)Du_#rpT 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 literal 153600 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øNP{{#D?=3%q*;SE{Cy@a0Rt&_zn>>i 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


nIoPq6;N% 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 XR5?Qm{{Nss$qh9JH}-$~b2IP?>GgK1 diff --git a/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb b/websocket-sharp/bin/Debug_Ubuntu/websocket-sharp.dll.mdb index a61290ece6652e08b24d5b3f5748fc6c64d2a904..65e8ec87d3f7e41415d6c79549161f5d5ff92a05 100644 GIT binary patch literal 68820 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 diff --git a/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll b/websocket-sharp/bin/Release_Ubuntu/websocket-sharp.dll index 9ca89d17f19c5ead0cd36ee5cd2cffff6c98dbda..29b9380bd1ab5404385d99422d9a3a4f6965c9bf 100755 GIT binary patch literal 151552 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 z%0A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

-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 literal 152064 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 + + + /home/starless/Projects/websocket-sharp/websocket-sharp/bin/Release_Ubuntu/websocket-sharp + + + +

+ Provides a set of static methods for the websocket-sharp. + + + + + Accept a WebSocket connection by the . + + + A that contains a WebSocket connection. + + + A that contains a TCP connection to accept a WebSocket connection from. + + + A that indicates a secure connection or not. (true indicates a secure connection.) + + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + Emit the specified delegate if is not . + + + An to emit. + + + An that emits the . + + + An that contains no event data. + + + + + Emit the specified EventHandler<TEventArgs> delegate if is not . + + + An EventHandler<TEventArgs> to emit. + + + An that emits the . + + + A TEventArgs that contains the event data. + + + The type of the event data generated by the event. + + + + + Determines whether the specified equals the specified as . + And save this specified as to the specified List<byte>. + + + true if the parameter equals the parameter as ; otherwise, false. + + + An to compare. + + + A to compare. + + + A List<byte> to save the as . + + + Is thrown when the parameter passed to a method is invalid because it is outside the allowable range of values as . + + + + + Determines whether the entry with the specified key exists in the specified . + + + true if the entry with the exists in the ; otherwise, false. + + + A that contains the entries. + + + A that contains the key of the entry to find. + + + + + Determines whether the entry with the specified both key and value exists in the specified . + + + true if the entry with the both and exists in the ; otherwise, false. + + + A that contains the entries. + + + A that contains the key of the entry to find. + + + A that contains the value of the entry to find. + + + + + Gets the absolute path from the specified . + + + A that contains the absolute path if got successfully; otherwise, . + + + A that contains the URI to get the absolute path from. + + + + + Gets the description of the HTTP status code using the specified code. + + + A that contains the description of the . + + + One of values that contains the HTTP status code. + + + + + Gets the name from the specified that contains a pair of name and value are separated by a separator string. + + + A that contains the name if any; otherwise, null. + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + + + Gets the name and value from the specified that contains a pair of name and value are separated by a separator string. + + + A KeyValuePair<string, string> that contains the name and value if any. + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + + + Gets the description of the HTTP status code using the specified code. + + + A that contains the description of the . + + + An that contains the HTTP status code. + + + + + Gets the value from the specified that contains a pair of name and value are separated by a separator string. + + + A that contains the value if any; otherwise, null. + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + + + Determines whether the specified is a . + + + true if the parameter is a ; otherwise, false. + + + A to test. + + + + + Determines whether the specified is host (this computer architecture) byte order. + + + true if the parameter is host byte order; otherwise, false. + + + A to test. + + + + + Determines whether the specified object is . + + + true if the parameter is ; otherwise, false. + + + A class to test. + + + The type of the parameter. + + + + + Determines whether the specified object is . + And invokes the specified delegate if the specified object is . + + + true if the parameter is ; otherwise, false. + + + A class to test. + + + An delegate that contains the method(s) called if the is . + + + The type of the parameter. + + + + + Determines whether the specified is or . + + + true if the parameter is or ; otherwise, false. + + + A to test. + + + + + Determines whether the specified is predefined scheme. + + + true if the parameter is the predefined scheme; otherwise, false. + + + A to test. + + + + + Determines whether the specified is valid absolute path. + + + true if the parameter is valid absolute path; otherwise, false. + + + A to test. + + + A that receives a message if the is invalid. + + + + + Determines whether the specified is a URI string. + + + true if the parameter is maybe a URI string; otherwise, false. + + + A to test. + + + + + Determines whether two specified objects don't have the same value. + + + true if the value of parameter isn't the same as the value of parameter; otherwise, false. + + + The first to compare. + + + The second to compare. + + + A that indicates a case-sensitive or insensitive comparison. (true indicates a case-insensitive comparison.) + + + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + An array of that receives the read data. + + + A that contains the data to read. + + + An that contains the number of bytes to read. + + + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + An array of that receives the read data. + + + A that contains the data to read. + + + A that contains the number of bytes to read. + + + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + An array of that receives the read data. + + + A that contains the data to read. + + + A that contains the number of bytes to read. + + + An that contains the buffer size in bytes of each internal read. + + + + + Retrieves a sub-array from the specified . A sub-array starts at the specified element position. + + + An array of T that receives a sub-array, or an empty array of T if any problems with the parameters. + + + An array of T that contains the data to retrieve a sub-array. + + + An that contains the zero-based starting position of a sub-array in the . + + + An that contains the number of elements to retrieve a sub-array. + + + The type of elements in the . + + + + + Executes the specified delegate times. + + + An that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + + + Executes the specified delegate times. + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + + + Executes the specified delegate times. + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + + + Executes the specified delegate times. + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + + + Executes the specified Action<ulong> delegate times. + + + An that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + + + Executes the specified Action<ulong> delegate times. + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + + + Executes the specified Action<ulong> delegate times. + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + + + Executes the specified Action<ulong> delegate times. + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + + + Converts the specified array of to the specified type data. + + + A T converted from the , or a default value of T + if the is an empty array of + or if the types of T aren't the , , , + , , , , + , , . + + + An array of to convert. + + + A that indicates the byte order of the . + + + The type of the return value. The T must be a value type. + + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + Converts the specified data to an array of . + + + An array of converted from the . + + + A T to convert. + + + A that indicates the byte order of the return. + + + The type of the . The T must be a value type. + + + + + Converts the order of the specified array of to the host byte order. + + + An array of converted from the . + + + An array of to convert. + + + A that indicates the byte order of the . + + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + Converts the specified array to a concatenated the specified separator string + between each element of this array. + + + A converted from the parameter, or a + if the length of the is zero. + + + An array of T to convert. + + + A that contains a separator string. + + + The type of elements in the . + + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + Converts the specified to a object. + + + A converted from the parameter, or + if the is or . + + + A to convert. + + + + + Tries to create a new WebSocket using the specified . + + + true if the WebSocket was successfully created; otherwise, false. + + + A that contains a WebSocket URI. + + + When this method returns, contains a created WebSocket if the parameter is valid WebSocket URI; otherwise, . + + + When this method returns, contains a error message if the parameter is invalid WebSocket URI; otherwise, String.Empty. + + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + URL-decodes the specified . + + + A that receives a decoded string, or the parameter + if the is or . + + + A to decode. + + + + + URL-encodes the specified . + + + A that receives a encoded string, or the parameter + if the is or . + + + A to encode. + + + + + Writes the specified content data using the specified . + + + A that contains a network stream to write a content data. + + + An array of that contains a content data to write. + + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + Contains the values of the state of the WebSocket connection. + + + The WsState enumeration contains the values of the state of the WebSocket connection defined in + The WebSocket API. + + + + + Equivalent to numeric value 0. Indicates that the connection has not yet been established. + + + + + Equivalent to numeric value 1. Indicates that the connection is established and communication is possible. + + + + + Equivalent to numeric value 2. Indicates that the connection is going through the closing handshake, or the Close method has been invoked. + + + + + Equivalent to numeric value 3. Indicates that the connection has been closed or could not be opened. + + + + + Contains the event data associated with a event. + + + The event occurs when the WebSocket receives a text or binary data frame. + If you want to get the received data, you should access the or + properties. + + + + + Gets the received data as a . + + + A that contains a received data. + + + + + Gets the received data as an array of . + + + An array of that contains a received data. + + + + + Gets the type of received data. + + + One of the that indicates the type of received data. + + + + + Contains the event data associated with a event. + + + The event occurs when the WebSocket receives a close control frame or + the WebSocket.Close method is called. If you want to get the reason for closure, you should access the or + properties. + + + + + Gets the status code for closure. + + + A that contains a status code for closure. + + + + + Gets the reason for closure. + + + A that contains a reason for closure. + + + + + Indicates whether the connection closed cleanly or not. + + + true if the connection closed cleanly; otherwise, false. + + + + + Contains the values that indicate whether the byte order is a Little-endian or Big-endian. + + + + + Indicates a Little-endian. + + + + + Indicates a Big-endian. + + + + + Contains the values of the status codes for the WebSocket connection closure. + + + + The CloseStatusCode enumeration contains the values of the status codes for the WebSocket connection closure + defined in RFC 6455 for the WebSocket protocol. + + + "Reserved value" must not be set as a status code in a close control frame by an endpoint. + It is designated for use in applications expecting a status code to indicate that connection + was closed due to a system grounds. + + + + + + Equivalent to close status 1000. Indicates a normal closure. + + + + + Equivalent to close status 1001. Indicates that an endpoint is "going away". + + + + + Equivalent to close status 1002. Indicates that an endpoint is terminating the connection + due to a protocol error. + + + + + Equivalent to close status 1003. Indicates that an endpoint is terminating the connection + because it has received a type of data it cannot accept. + + + + + Equivalent to close status 1004. Still undefined. Reserved value. + + + + + Equivalent to close status 1005. Indicates that no status code was actually present. Reserved value. + + + + + Equivalent to close status 1006. Indicates that the connection was closed abnormally. Reserved value. + + + + + Equivalent to close status 1007. Indicates that an endpoint is terminating the connection + because it has received data within a message that was not consistent with the type of the message. + + + + + Equivalent to close status 1008. Indicates that an endpoint is terminating the connection + because it has received a message that violates its policy. + + + + + Equivalent to close status 1009. Indicates that an endpoint is terminating the connection + because it has received a message that is too big for it to process. + + + + + Equivalent to close status 1010. Indicates that an endpoint (client) is terminating the connection + because it has expected the server to negotiate one or more extension, but the server didn't return + them in the response message of the WebSocket handshake. + + + + + Equivalent to close status 1011. Indicates that a server is terminating the connection because it encountered + an unexpected condition that prevented it from fulfilling the request. + + + + + Equivalent to close status 1015. Indicates that the connection was closed due to a failure to perform + a TLS handshake. Reserved value. + + + + + Contains the values of the FIN bit in the WebSocket data frame. + + + + The Fin enumeration contains the values of the FIN bit defined in + RFC 6455 for the WebSocket protocol. + + + The FIN bit indicates whether a WebSocket frame is the final fragment in a message. + + + + + + Equivalent to numeric value 0. Indicates that more frames follow. + + + + + Equivalent to numeric value 1. Indicates a final frame. + + + + + Contains the values of the MASK bit in the WebSocket data frame. + + + + The Mask enumeration contains the values of the MASK bit defined in + RFC 6455 for the WebSocket protocol. + + + The MASK bit indicates whether the payload data in a WebSocket frame is masked. + + + + + + Equivalent to numeric value 0. Indicates that the payload data in a frame is not masked, no masking key in this frame. + + + + + Equivalent to numeric value 1. Indicates that the payload data in a frame is masked, a masking key is present in this frame. + + + + + Contains the values of the opcodes that denotes the frame type of the WebSocket frame. + + + The Opcode enumeration contains the values of the opcodes defined in + RFC 6455 for the WebSocket protocol. + + + + + Equivalent to numeric value 0. Indicates a continuation frame. + + + + + Equivalent to numeric value 1. Indicates a text frame. + + + + + Equivalent to numeric value 2. Indicates a binary frame. + + + + + Equivalent to numeric value 8. Indicates a connection close frame. + + + + + Equivalent to numeric value 9. Indicates a ping frame. + + + + + Equivalent to numeric value 10. Indicates a pong frame. + + + + + Contains the values of the reserved bit in the WebSocket data frame. + + + + The Rsv enumeration contains the values of the reserved bit (RSV1, RSV2, RSV3) defined in + RFC 6455 for the WebSocket protocol. + + + The reserved bit must be zero unless an extension is negotiated that defines meanings for non-zero values. + + + + + + Equivalent to numeric value 0. + + + + + Equivalent to numeric value 1. + + + + + Contains the event data associated with a error event. + + + The error event occurs when this event sender gets an error. + If you want to get the error message, you should access the property. + + + + + Gets the error message. + + + A that contains a error message. + + + + + Implements the WebSocket interface. + + + The WebSocket class provides methods and properties for two-way communication using the WebSocket protocol (RFC 6455). + + + + + Initializes a new instance of the class with the specified WebSocket URL and subprotocols. + + + A that contains the WebSocket URL. + + + An array of that contains the WebSocket subprotocols if any. + + + is . + + + is not valid WebSocket URL. + + + + + Initializes a new instance of the class with the specified WebSocket URL, OnOpen, OnMessage, OnError, OnClose event handlers and subprotocols. + + + A that contains the WebSocket URL. + + + An OnOpen event handler. + + + An OnMessage event handler. + + + An OnError event handler. + + + An OnClose event handler. + + + An array of that contains the WebSocket subprotocols if any. + + + is . + + + is not valid WebSocket URL. + + + + + Occurs when the WebSocket connection has been established. + + + + + Occurs when the WebSocket receives a data frame. + + + + + Occurs when the WebSocket gets an error. + + + + + Occurs when the WebSocket receives a Close frame or the Close method is called. + + + + + Gets the extensions selected by the server. + + + A that contains the extensions if any. By default, String.Empty. (Currently this will only ever be the String.Empty.) + + + + + Gets a value indicating whether a connection is alive. + + + true if the connection is alive; otherwise, false. + + + + + Gets a value indicating whether a connection is secure. + + + true if the connection is secure; otherwise, false. + + + + + Gets the subprotocol selected by the server. + + + A that contains the subprotocol if any. By default, String.Empty. + + + + + Gets the state of the connection. + + + One of the . By default, WsState.CONNECTING. + + + + + Gets the buffer that contains unsent WebSocket frames. + + + An array of that contains unsent WebSocket frames. + + + + + Gets the count of unsent WebSocket frames. + + + A that contains the count of unsent WebSocket frames. + + + + + Gets or sets the WebSocket URL. + + + A that contains the WebSocket URL. + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + A that contains a status code indicating a reason for closure. + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + A that contains a status code indicating a reason for closure. + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + A that contains a status code indicating a reason for closure. + + + A that contains a reason for closure. + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + A that contains a status code indicating a reason for closure. + + + A that contains a reason for closure. + + + + + Establishes a connection. + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + Call when you are finished using the . The + method leaves the in an unusable state. After + calling , you must release all references to the so + the garbage collector can reclaim the memory that the was occupying. + + + + + Sends a Ping frame using the connection. + + + true if the WebSocket receives a Pong frame in a time; otherwise, false. + + + + + Sends a Ping frame with a message using the connection. + + + A that contains the message to be sent. + + + true if the WebSocket receives a Pong frame in a time; otherwise, false. + + + + + Sends a text data using the connection. + + + A that contains the text data to be sent. + + + + + Sends a binary data using the connection. + + + An array of that contains the binary data to be sent. + + + + + Sends a binary data using the connection. + + + A that contains the binary data to be sent. + + + + + Sends a text data asynchronously using the connection. + + + A that contains the text data to be sent. + + + An delegate that contains the method(s) that is called when an asynchronous operation completes. + + + + + Sends a binary data asynchronously using the connection. + + + An array of that contains the binary data to be sent. + + + An delegate that contains the method(s) that is called when an asynchronous operation completes. + + + + + Sends a binary data asynchronously using the connection. + + + A that contains the binary data to be sent. + + + An delegate that contains the method(s) that is called when an asynchronous operation completes. + + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode. + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and returns the encoded string. + + The text string to encode. + The HTML-encoded text. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Provides the basic functions of the server that receives the WebSocket connection requests. + + + The WebSocketServerBase class is an abstract class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class that listens for incoming connection attempts + on the specified WebSocket URL. + + + A that contains a WebSocket URL. + + + is . + + + is invalid. + + + + + Initializes a new instance of the class that listens for incoming connection attempts + on the specified , , and . + + + An that contains a local IP address. + + + An that contains a port number. + + + A that contains a absolute path. + + + A that indicates providing a secure connection or not. (true indicates providing a secure connection.) + + + Either or is . + + + + is invalid. + + + -or- + + + Pair of and is invalid. + + + + + + Occurs when this server gets an error. + + + + + Gets or sets the WebSocket URL on which to listen for incoming connection attempts. + + + A that contains a WebSocket URL. + + + + + Gets the local IP address on which to listen for incoming connection attempts. + + + A that contains a local IP address. + + + + + Gets a value indicating whether this server is secure. + + + true if this server is secure; otherwise, false. + + + + + Gets a value indicating whether this server is self host. + + + true if this server is self host; otherwise, false. + + + + + Gets the port on which to listen for incoming connection attempts. + + + An that contains a port number. + + + + + Accepts the WebSocket connection. + + + A that contains the WebSocket connection. + + + + + Occurs the event with the specified . + + + A that contains an error message. + + + + + Starts to receive the WebSocket connection requests. + + + + + Stops receiving the WebSocket connection requests. + + + + + Exposes the methods and property for the WebSocket service host. + + + + + + + Indicates whether the WebSocket service host closes the connection to a inactive service client. + + + true if the WebSocket service host closes the connection to a inactive service client; otherwise, false. + + + + + Binds the specified . + + + An to bind. + + + + + Broadcasts the specified . + + + A to broadcast. + + + + + Starts the WebSocket service host. + + + + + Stops the WebSocket service host. + + + + diff --git a/websocket-sharp/doc/doc.sh b/websocket-sharp/doc/doc.sh new file mode 100755 index 00000000..1a61d3be --- /dev/null +++ b/websocket-sharp/doc/doc.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# @(#) doc.sh ver.0.0.1 2013.01.11 +# +# Usage: +# doc.sh +# +# Description: +# Creating documentation for websocket-sharp. +# +########################################################################### + +SRC_DIR="../bin/Release_Ubuntu" +XML="${SRC_DIR}/websocket-sharp.xml" +DLL="${SRC_DIR}/websocket-sharp.dll" + +DOC_DIR="." +MDOC_DIR="${DOC_DIR}/mdoc" +HTML_DIR="${DOC_DIR}/html" + +createDir() { + if [ -d $1 ]; then + rm -fr $1/* + else + mkdir -p $1 + fi +} + +set -e +createDir ${MDOC_DIR} +createDir ${HTML_DIR} +mdoc update -i ${XML} -o ${MDOC_DIR}/ ${DLL} +mdoc export-html -o ${HTML_DIR}/ ${MDOC_DIR}/ diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/CloseStatusCode.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/CloseStatusCode.html new file mode 100644 index 00000000..0b03b83b --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/CloseStatusCode.html @@ -0,0 +1,361 @@ + + + WebSocketSharp.Frame.CloseStatusCode + + + + + + + +

CloseStatusCode Enum

+

+ Contains the values of the status codes for the WebSocket connection closure. +

+
+

Syntax

+
public enum CloseStatusCode
+
+
+

Remarks

+
+

+ The CloseStatusCode enumeration contains the values of the status codes for the WebSocket connection closure + defined in RFC 6455 for the WebSocket protocol. +

+

+ "Reserved value" must not be set as a status code in a close control frame by an endpoint. + It is designated for use in applications expecting a status code to indicate that connection + was closed due to a system grounds. +

+
+

Members

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Member NameDescription
+ ABNORMAL + + Equivalent to close status 1006. Indicates that the connection was closed abnormally. Reserved value. +
+ AWAY + + Equivalent to close status 1001. Indicates that an endpoint is "going away". +
+ IGNORE_EXTENSION + + Equivalent to close status 1010. Indicates that an endpoint (client) is terminating the connection + because it has expected the server to negotiate one or more extension, but the server didn't return + them in the response message of the WebSocket handshake. +
+ INCONSISTENT_DATA + + Equivalent to close status 1007. Indicates that an endpoint is terminating the connection + because it has received data within a message that was not consistent with the type of the message. +
+ INCORRECT_DATA + + Equivalent to close status 1003. Indicates that an endpoint is terminating the connection + because it has received a type of data it cannot accept. +
+ NO_STATUS_CODE + + Equivalent to close status 1005. Indicates that no status code was actually present. Reserved value. +
+ NORMAL + + Equivalent to close status 1000. Indicates a normal closure. +
+ POLICY_VIOLATION + + Equivalent to close status 1008. Indicates that an endpoint is terminating the connection + because it has received a message that violates its policy. +
+ PROTOCOL_ERROR + + Equivalent to close status 1002. Indicates that an endpoint is terminating the connection + due to a protocol error. +
+ SERVER_ERROR + + Equivalent to close status 1011. Indicates that a server is terminating the connection because it encountered + an unexpected condition that prevented it from fulfilling the request. +
+ TLS_HANDSHAKE_FAILURE + + Equivalent to close status 1015. Indicates that the connection was closed due to a failure to perform + a TLS handshake. Reserved value. +
+ TOO_BIG + + Equivalent to close status 1009. Indicates that an endpoint is terminating the connection + because it has received a message that is too big for it to process. +
+ UNDEFINED + + Equivalent to close status 1004. Still undefined. Reserved value. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/Fin.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/Fin.html new file mode 100644 index 00000000..b6440411 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/Fin.html @@ -0,0 +1,262 @@ + + + WebSocketSharp.Frame.Fin + + + + + + + +

Fin Enum

+

+ Contains the values of the FIN bit in the WebSocket data frame. +

+
+

Syntax

+
public enum Fin
+
+
+

Remarks

+
+

+ The Fin enumeration contains the values of the FIN bit defined in + RFC 6455 for the WebSocket protocol. +

+

+ The FIN bit indicates whether a WebSocket frame is the final fragment in a message. +

+
+

Members

+
+ + + + + + + + + + + + + +
Member NameDescription
+ FINAL + + Equivalent to numeric value 1. Indicates a final frame. +
+ MORE + + Equivalent to numeric value 0. Indicates that more frames follow. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/Mask.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/Mask.html new file mode 100644 index 00000000..b39726cf --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/Mask.html @@ -0,0 +1,262 @@ + + + WebSocketSharp.Frame.Mask + + + + + + + +

Mask Enum

+

+ Contains the values of the MASK bit in the WebSocket data frame. +

+
+

Syntax

+
public enum Mask
+
+
+

Remarks

+
+

+ The Mask enumeration contains the values of the MASK bit defined in + RFC 6455 for the WebSocket protocol. +

+

+ The MASK bit indicates whether the payload data in a WebSocket frame is masked. +

+
+

Members

+
+ + + + + + + + + + + + + +
Member NameDescription
+ MASK + + Equivalent to numeric value 1. Indicates that the payload data in a frame is masked, a masking key is present in this frame. +
+ UNMASK + + Equivalent to numeric value 0. Indicates that the payload data in a frame is not masked, no masking key in this frame. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/Opcode.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/Opcode.html new file mode 100644 index 00000000..11a1c0b0 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/Opcode.html @@ -0,0 +1,289 @@ + + + WebSocketSharp.Frame.Opcode + + + + + + + +

Opcode Enum

+

+ Contains the values of the opcodes that denotes the frame type of the WebSocket frame. +

+
+

Syntax

+
[System.Flags]
public enum Opcode
+
+
+

Remarks

+
+ The Opcode enumeration contains the values of the opcodes defined in + RFC 6455 for the WebSocket protocol. +
+

Members

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Member NameDescription
+ BINARY + + Equivalent to numeric value 2. Indicates a binary frame. +
+ CLOSE + + Equivalent to numeric value 8. Indicates a connection close frame. +
+ CONT + + Equivalent to numeric value 0. Indicates a continuation frame. +
+ PING + + Equivalent to numeric value 9. Indicates a ping frame. +
+ PONG + + Equivalent to numeric value 10. Indicates a pong frame. +
+ TEXT + + Equivalent to numeric value 1. Indicates a text frame. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/PayloadData.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/PayloadData.html new file mode 100644 index 00000000..cf825206 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/PayloadData.html @@ -0,0 +1,859 @@ + + + WebSocketSharp.Frame.PayloadData + + + + + + + +

PayloadData Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class PayloadData : IEnumerable<byte>
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + PayloadData + (byte[])
+
+ Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+
+ + PayloadData + (byte[], bool)
+
+ Documentation for this section has not yet been entered. +
+
+
+
+
+ + PayloadData + (byte[], byte[])
+
+ Documentation for this section has not yet been entered. +
+
+
+
+
+ + PayloadData + (byte[], byte[], bool)
+
+ Documentation for this section has not yet been entered. +
+
+
+

Public Fields

+
+
+ + + + + + +
+
const
+
+ + MaxLength + + + + ulong + (9223372036854775807). Documentation for this section has not yet been entered.
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + ApplicationData + + + + byte[]. Documentation for this section has not yet been entered.
[read-only]
+ + ExtensionData + + + + byte[]. Documentation for this section has not yet been entered.
[read-only]
+ + IsMasked + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + Length + + + + ulong + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+ + GetEnumerator + () : IEnumerator<byte>
Documentation for this section has not yet been entered.
+
+
+
+ + Mask + (byte[])
Documentation for this section has not yet been entered.
+
+
+
+ + ToBytes + () : byte[]
Documentation for this section has not yet been entered.
+
override
+
+ + ToString + () : string
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + IEnumerable.GetEnumerator + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

PayloadData Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public PayloadData (byte[] appData)
+

Parameters

+
+
+
+ appData +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadData Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public PayloadData (string appData)
+

Parameters

+
+
+
+ appData +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadData Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public PayloadData (byte[] appData, bool masked)
+

Parameters

+
+
+
+ appData +
+
+ Documentation for this section has not yet been entered. +
+
+ masked +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadData Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public PayloadData (byte[] extData, byte[] appData)
+

Parameters

+
+
+
+ extData +
+
+ Documentation for this section has not yet been entered. +
+
+ appData +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadData Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public PayloadData (byte[] extData, byte[] appData, bool masked)
+

Parameters

+
+
+
+ extData +
+
+ Documentation for this section has not yet been entered. +
+
+ appData +
+
+ Documentation for this section has not yet been entered. +
+
+ masked +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ApplicationData Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] ApplicationData { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ExtensionData Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] ExtensionData { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerator<byte> GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsMasked Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsMasked { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Length Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public ulong Length { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Mask Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Mask (byte[] maskingKey)
+

Parameters

+
+
+
+ maskingKey +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

MaxLength Field

+
+

+ Documentation for this section has not yet been entered. +

+

+ Value: 9223372036854775807

+

Syntax

+
public const ulong MaxLength
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.Collections.IEnumerable.GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ IEnumerator System.Collections.IEnumerable.GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToBytes Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] ToBytes ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToString Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string ToString ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/Rsv.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/Rsv.html new file mode 100644 index 00000000..64cc7816 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/Rsv.html @@ -0,0 +1,262 @@ + + + WebSocketSharp.Frame.Rsv + + + + + + + +

Rsv Enum

+

+ Contains the values of the reserved bit in the WebSocket data frame. +

+
+

Syntax

+
public enum Rsv
+
+
+

Remarks

+
+

+ The Rsv enumeration contains the values of the reserved bit (RSV1, RSV2, RSV3) defined in + RFC 6455 for the WebSocket protocol. +

+

+ The reserved bit must be zero unless an extension is negotiated that defines meanings for non-zero values. +

+
+

Members

+
+ + + + + + + + + + + + + +
Member NameDescription
+ OFF + + Equivalent to numeric value 0. +
+ ON + + Equivalent to numeric value 1. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/WsFrame.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/WsFrame.html new file mode 100644 index 00000000..8b3250d8 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/WsFrame.html @@ -0,0 +1,1255 @@ + + + WebSocketSharp.Frame.WsFrame + + + + + + + +

WsFrame Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class WsFrame : IEnumerable<byte>
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + + + + + + + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + ExtPayloadLen + + + + byte[]. Documentation for this section has not yet been entered.
[read-only]
+ + Fin + + + + Fin + . Documentation for this section has not yet been entered.
[read-only]
+ + Length + + + + ulong + . Documentation for this section has not yet been entered.
[read-only]
+ + Masked + + + + Mask + . Documentation for this section has not yet been entered.
[read-only]
+ + MaskingKey + + + + byte[]. Documentation for this section has not yet been entered.
[read-only]
+ + Opcode + + + + Opcode + . Documentation for this section has not yet been entered.
[read-only]
+ + PayloadData + + + + PayloadData + . Documentation for this section has not yet been entered.
[read-only]
+ + PayloadLen + + + + byte + . Documentation for this section has not yet been entered.
[read-only]
+ + PayloadLength + + + + ulong + . Documentation for this section has not yet been entered.
[read-only]
+ + Rsv1 + + + + Rsv + . Documentation for this section has not yet been entered.
[read-only]
+ + Rsv2 + + + + Rsv + . Documentation for this section has not yet been entered.
[read-only]
+ + Rsv3 + + + + Rsv + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + GetEnumerator + () : IEnumerator<byte>
Documentation for this section has not yet been entered.
+
static
+
+ + Parse + (byte[]) : WsFrame
Documentation for this section has not yet been entered.
+
static
+
+ + Parse + (System.IO.Stream) : WsFrame
Documentation for this section has not yet been entered.
+
static
+
+ + Parse + (byte[], bool) : WsFrame
Documentation for this section has not yet been entered.
+
static
+
+ + Parse + (System.IO.Stream, bool) : WsFrame
Documentation for this section has not yet been entered.
+
static
+
+ + ParseAsync + (System.IO.Stream, Action<WsFrame>)
Documentation for this section has not yet been entered.
+
static
+
+ + ParseAsync + (System.IO.Stream, bool, Action<WsFrame>)
Documentation for this section has not yet been entered.
+
+
+
+ + Print + ()
Documentation for this section has not yet been entered.
+
+
+
+ + ToBytes + () : byte[]
Documentation for this section has not yet been entered.
+
override
+
+ + ToString + () : string
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + IEnumerable.GetEnumerator + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WsFrame Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WsFrame (Opcode opcode, PayloadData payloadData)
+

Parameters

+
+
+
+ opcode +
+
+ Documentation for this section has not yet been entered. +
+
+ payloadData +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WsFrame Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WsFrame (Fin fin, Opcode opcode, PayloadData payloadData)
+

Parameters

+
+
+
+ fin +
+
+ Documentation for this section has not yet been entered. +
+
+ opcode +
+
+ Documentation for this section has not yet been entered. +
+
+ payloadData +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WsFrame Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WsFrame (Fin fin, Opcode opcode, Mask mask, PayloadData payloadData)
+

Parameters

+
+
+
+ fin +
+
+ Documentation for this section has not yet been entered. +
+
+ opcode +
+
+ Documentation for this section has not yet been entered. +
+
+ mask +
+
+ Documentation for this section has not yet been entered. +
+
+ payloadData +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ExtPayloadLen Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] ExtPayloadLen { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Fin Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Fin Fin { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerator<byte> GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Length Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public ulong Length { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Masked Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Mask Masked { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

MaskingKey Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] MaskingKey { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Opcode Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Opcode Opcode { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Parse Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static WsFrame Parse (byte[] src)
+

Parameters

+
+
+
+ src +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Parse Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static WsFrame Parse (System.IO.Stream stream)
+

Parameters

+
+
+
+ stream +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Parse Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static WsFrame Parse (byte[] src, bool unmask)
+

Parameters

+
+
+
+ src +
+
+ Documentation for this section has not yet been entered. +
+
+ unmask +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Parse Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static WsFrame Parse (System.IO.Stream stream, bool unmask)
+

Parameters

+
+
+
+ stream +
+
+ Documentation for this section has not yet been entered. +
+
+ unmask +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ParseAsync Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static void ParseAsync (System.IO.Stream stream, Action<WsFrame> completed)
+

Parameters

+
+
+
+ stream +
+
+ Documentation for this section has not yet been entered. +
+
+ completed +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ParseAsync Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static void ParseAsync (System.IO.Stream stream, bool unmask, Action<WsFrame> completed)
+

Parameters

+
+
+
+ stream +
+
+ Documentation for this section has not yet been entered. +
+
+ unmask +
+
+ Documentation for this section has not yet been entered. +
+
+ completed +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadData Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public PayloadData PayloadData { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadLen Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte PayloadLen { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PayloadLength Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public ulong PayloadLength { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Print Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Print ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Rsv1 Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Rsv Rsv1 { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Rsv2 Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Rsv Rsv2 { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Rsv3 Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Rsv Rsv3 { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.Collections.IEnumerable.GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ IEnumerator System.Collections.IEnumerable.GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToBytes Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] ToBytes ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToString Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string ToString ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Frame
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Frame/index.html b/websocket-sharp/doc/html/WebSocketSharp.Frame/index.html new file mode 100644 index 00000000..43142c6d --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Frame/index.html @@ -0,0 +1,270 @@ + + + websocket-sharp: WebSocketSharp.Frame + + + + + + +

WebSocketSharp.Frame Namespace

+

+

+
+
+
+

Namespace

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ CloseStatusCode + + Contains the values of the status codes for the WebSocket connection closure. +
+ Fin + + Contains the values of the FIN bit in the WebSocket data frame. +
+ Mask + + Contains the values of the MASK bit in the WebSocket data frame. +
+ Opcode + + Contains the values of the opcodes that denotes the frame type of the WebSocket frame. +
+ PayloadData + + Documentation for this section has not yet been entered. +
+ Rsv + + Contains the values of the reserved bit in the WebSocket data frame. +
+ WsFrame + + Documentation for this section has not yet been entered. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.html b/websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.html new file mode 100644 index 00000000..4667b18d --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.html @@ -0,0 +1,902 @@ + + + WebSocketSharp.Net.Sockets.TcpListenerWebSocketContext + + + + + + + +

TcpListenerWebSocketContext Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class TcpListenerWebSocketContext : WebSocketSharp.Net.WebSocketContext
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + WebSocketSharp.Net.WebSocketContext. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
override
+ + CookieCollection + + + + WebSocketSharp.Net.CookieCollection + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + CookieCollection + + + + WebSocketSharp.Net.CookieCollection + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + Headers + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + Headers + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + IsAuthenticated + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsAuthenticated + + + + bool + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + IsLocal + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsLocal + + + + bool + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + IsSecureConnection + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsSecureConnection + + + + bool + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + Origin + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + Origin + + + + string + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
+ + Path + + + + string + . Documentation for this section has not yet been entered.
[read-only]
override
+ + RequestUri + + + + Uri + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + RequestUri + + + + Uri + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + SecWebSocketKey + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketKey + + + + string + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + SecWebSocketProtocols + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketProtocols + + + + IEnumerable<string> + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
override
+ + SecWebSocketVersion + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketVersion + + + + string + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
+ + ServerEndPoint + + + + System.Net.IPEndPoint + . Documentation for this section has not yet been entered.
[read-only]
override
+ + User + + + + System.Security.Principal.IPrincipal + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + User + + + + System.Security.Principal.IPrincipal + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
[read-only]
+ + UserEndPoint + + + + System.Net.IPEndPoint + . Documentation for this section has not yet been entered.
[read-only]
override
+ + WebSocket + + + + WebSocketSharp.WebSocket + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + WebSocket + + + + WebSocketSharp.WebSocket + . Documentation for this section has not yet been entered. (Inherited from WebSocketSharp.Net.WebSocketContext.)
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

CookieCollection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override WebSocketSharp.Net.CookieCollection CookieCollection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Headers Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsAuthenticated Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool IsAuthenticated { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsLocal Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool IsLocal { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSecureConnection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool IsSecureConnection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Origin Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string Origin { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Path Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public virtual string Path { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RequestUri Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override Uri RequestUri { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketKey Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string SecWebSocketKey { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketProtocols Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override IEnumerable<string> SecWebSocketProtocols { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketVersion Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string SecWebSocketVersion { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ServerEndPoint Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public virtual System.Net.IPEndPoint ServerEndPoint { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

User Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override System.Security.Principal.IPrincipal User { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UserEndPoint Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public virtual System.Net.IPEndPoint UserEndPoint { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocket Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override WebSocketSharp.WebSocket WebSocket { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net.Sockets
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/index.html b/websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/index.html new file mode 100644 index 00000000..b4b85d67 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net.Sockets/index.html @@ -0,0 +1,222 @@ + + + websocket-sharp: WebSocketSharp.Net.Sockets + + + + + + +

WebSocketSharp.Net.Sockets Namespace

+

+

+
+
+
+

Namespace

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + +
TypeDescription
+ TcpListenerWebSocketContext + + Documentation for this section has not yet been entered. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html new file mode 100644 index 00000000..cfa9c651 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemeSelector.html @@ -0,0 +1,246 @@ + + + WebSocketSharp.Net.AuthenticationSchemeSelector + + + + + + + +

AuthenticationSchemeSelector Delegate

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public delegate AuthenticationSchemes AuthenticationSchemeSelector (HttpListenerRequest httpRequest)
+
+
+

Parameters

+
+
+
+ httpRequest +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html new file mode 100644 index 00000000..0db24d63 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/AuthenticationSchemes.html @@ -0,0 +1,296 @@ + + + WebSocketSharp.Net.AuthenticationSchemes + + + + + + + +

AuthenticationSchemes Enum

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
[System.Flags]
public enum AuthenticationSchemes
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Members

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Member NameDescription
+ Anonymous + + Documentation for this section has not yet been entered. +
+ Basic + + Documentation for this section has not yet been entered. +
+ Digest + + Documentation for this section has not yet been entered. +
+ IntegratedWindowsAuthentication + + Documentation for this section has not yet been entered. +
+ Negotiate + + Documentation for this section has not yet been entered. +
+ None + + Documentation for this section has not yet been entered. +
+ Ntlm + + Documentation for this section has not yet been entered. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/Cookie.html b/websocket-sharp/doc/html/WebSocketSharp.Net/Cookie.html new file mode 100644 index 00000000..f9df8589 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/Cookie.html @@ -0,0 +1,1070 @@ + + + WebSocketSharp.Net.Cookie + + + + + + + +

Cookie Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public sealed class Cookie
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + Cookie + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+
+
+ + Cookie + (string, string)
+
+ Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Comment + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + CommentUri + + + + Uri + . Documentation for this section has not yet been entered.
+
+
+
+ + Discard + + + + bool + . Documentation for this section has not yet been entered.
+
+
+
+ + Domain + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + Expired + + + + bool + . Documentation for this section has not yet been entered.
+
+
+
+ + Expires + + + + DateTime + . Documentation for this section has not yet been entered.
+
+
+
+ + HttpOnly + + + + bool + . Documentation for this section has not yet been entered.
+
+
+
+ + Name + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + Path + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + Port + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + Secure + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + TimeStamp + + + + DateTime + . Documentation for this section has not yet been entered.
+
+
+
+ + Value + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + Version + + + + int + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + +
+
override
+
+ + Equals + (object) : bool
Documentation for this section has not yet been entered.
+
override
+
+ + GetHashCode + () : int
Documentation for this section has not yet been entered.
+
override
+
+ + ToString + () : string
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

Cookie Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Cookie ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Cookie Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Cookie (string name, string value)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Cookie Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Cookie (string name, string value, string path)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+ path +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Cookie Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Cookie (string name, string value, string path, string domain)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+ path +
+
+ Documentation for this section has not yet been entered. +
+
+ domain +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Comment Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Comment { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CommentUri Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Uri CommentUri { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Discard Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Discard { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Domain Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Domain { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Equals Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool Equals (object obj)
+

Parameters

+
+
+
+ obj +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Expired Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Expired { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Expires Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public DateTime Expires { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetHashCode Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override int GetHashCode ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HttpOnly Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool HttpOnly { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Name Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Name { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Path Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Path { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Port Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Port { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Secure Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Secure { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

TimeStamp Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public DateTime TimeStamp { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToString Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string ToString ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Value Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Value { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Version Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int Version { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/CookieCollection.html b/websocket-sharp/doc/html/WebSocketSharp.Net/CookieCollection.html new file mode 100644 index 00000000..04ac8604 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/CookieCollection.html @@ -0,0 +1,731 @@ + + + WebSocketSharp.Net.CookieCollection + + + + + + + +

CookieCollection Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class CookieCollection : ICollection
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Count + + + + int + . Documentation for this section has not yet been entered.
[read-only]
+ + IsReadOnly + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + IsSynchronized + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
default property
+ + Item + (int) + + Cookie + . Documentation for this section has not yet been entered.
[read-only]
default property
+ + Item + (string) + + Cookie + . Documentation for this section has not yet been entered.
[read-only]
+ + SyncRoot + + + + object + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Add + (Cookie)
Documentation for this section has not yet been entered.
+
+
+
+ + Add + (CookieCollection)
Documentation for this section has not yet been entered.
+
+
+
+ + CopyTo + (Array, int)
Documentation for this section has not yet been entered.
+
+
+
+ + CopyTo + (Cookie[], int)
Documentation for this section has not yet been entered.
+
+
+
+ + GetEnumerator + () : IEnumerator
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

CookieCollection Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public CookieCollection ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (Cookie cookie)
+

Parameters

+
+
+
+ cookie +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (CookieCollection cookies)
+

Parameters

+
+
+
+ cookies +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CopyTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void CopyTo (Array array, int index)
+

Parameters

+
+
+
+ array +
+
+ Documentation for this section has not yet been entered. +
+
+ index +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CopyTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void CopyTo (Cookie[] array, int index)
+

Parameters

+
+
+
+ array +
+
+ Documentation for this section has not yet been entered. +
+
+ index +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Count Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int Count { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerator GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsReadOnly Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsReadOnly { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSynchronized Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsSynchronized { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Item Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+

+ This is the default property for this class. +

public Cookie this [int index] { get; }
+

Parameters

+
+
+
+ index +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Item Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+

+ This is the default property for this class. +

public Cookie this [string name] { get; }
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SyncRoot Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public object SyncRoot { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/CookieException.html b/websocket-sharp/doc/html/WebSocketSharp.Net/CookieException.html new file mode 100644 index 00000000..ee2ee3ff --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/CookieException.html @@ -0,0 +1,468 @@ + + + WebSocketSharp.Net.CookieException + + + + + + + +

CookieException Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class CookieException : FormatException
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + FormatException. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+
+ + CookieException + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+

Protected Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Methods

+
+
+ + + + + +
+
override
+
+ + GetObjectData + (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + System.Runtime.Serialization.ISerializable.GetObjectData + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

CookieException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public CookieException ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CookieException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Parameters

+
+
+
+ info +
+
+ Documentation for this section has not yet been entered. +
+
+ context +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetObjectData Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void GetObjectData (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext)
+

Parameters

+
+
+
+ serializationInfo +
+
+ Documentation for this section has not yet been entered. +
+
+ streamingContext +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.Runtime.Serialization.ISerializable.GetObjectData Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ void System.Runtime.Serialization.ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
+

Parameters

+
+
+
+ info +
+
+ Documentation for this section has not yet been entered. +
+
+ context +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html new file mode 100644 index 00000000..1aab2842 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListener.html @@ -0,0 +1,854 @@ + + + WebSocketSharp.Net.HttpListener + + + + + + + +

HttpListener Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public sealed class HttpListener : IDisposable
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+
+ + HttpListener + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + AuthenticationSchemes + + + + AuthenticationSchemes + . Documentation for this section has not yet been entered.
+
+
+
+ + AuthenticationSchemeSelectorDelegate + + + + AuthenticationSchemeSelector + . Documentation for this section has not yet been entered.
+
+
+
+ + IgnoreWriteExceptions + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + IsListening + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
static
+ + IsSupported + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + Prefixes + + + + HttpListenerPrefixCollection + . Documentation for this section has not yet been entered.
+
+
+
+ + Realm + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + UnsafeConnectionNtlmAuthentication + + + + bool + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Abort + ()
Documentation for this section has not yet been entered.
+
+
+
+ + BeginGetContext + (AsyncCallback, object) : IAsyncResult
Documentation for this section has not yet been entered.
+
+
+
+ + Close + ()
Documentation for this section has not yet been entered.
+
+
+
+ + EndGetContext + (IAsyncResult) : HttpListenerContext
Documentation for this section has not yet been entered.
+
+
+
+ + GetContext + () : HttpListenerContext
Documentation for this section has not yet been entered.
+
+
+
+ + Start + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + IDisposable.Dispose + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

HttpListener Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListener ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Abort Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Abort ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AuthenticationSchemes Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public AuthenticationSchemes AuthenticationSchemes { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AuthenticationSchemeSelectorDelegate Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

BeginGetContext Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IAsyncResult BeginGetContext (AsyncCallback callback, object state)
+

Parameters

+
+
+
+ callback +
+
+ Documentation for this section has not yet been entered. +
+
+ state +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Close ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

EndGetContext Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerContext EndGetContext (IAsyncResult asyncResult)
+

Parameters

+
+
+
+ asyncResult +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetContext Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerContext GetContext ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IgnoreWriteExceptions Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IgnoreWriteExceptions { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsListening Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsListening { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSupported Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static bool IsSupported { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Prefixes Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerPrefixCollection Prefixes { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Realm Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Realm { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Start Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Start ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.IDisposable.Dispose Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ void System.IDisposable.Dispose ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UnsafeConnectionNtlmAuthentication Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool UnsafeConnectionNtlmAuthentication { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerContext.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerContext.html new file mode 100644 index 00000000..f460df07 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerContext.html @@ -0,0 +1,411 @@ + + + WebSocketSharp.Net.HttpListenerContext + + + + + + + +

HttpListenerContext Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public sealed class HttpListenerContext
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + +
[read-only]
+ + Request + + + + HttpListenerRequest + . Documentation for this section has not yet been entered.
[read-only]
+ + Response + + + + HttpListenerResponse + . Documentation for this section has not yet been entered.
[read-only]
+ + User + + + + System.Security.Principal.IPrincipal + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + +
+
+
+
+ + AcceptWebSocket + () : HttpListenerWebSocketContext
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

AcceptWebSocket Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerWebSocketContext AcceptWebSocket ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Request Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerRequest Request { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Response Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerResponse Response { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

User Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerException.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerException.html new file mode 100644 index 00000000..d59664b2 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerException.html @@ -0,0 +1,493 @@ + + + WebSocketSharp.Net.HttpListenerException + + + + + + + +

HttpListenerException Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class HttpListenerException : System.ComponentModel.Win32Exception
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + System.ComponentModel.Win32Exception. +

+

Public Constructors

+
+
+ + + + + + + + + + + + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Protected Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + +
[read-only]
override
+ + ErrorCode + + + + int + . Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

HttpListenerException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerException ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HttpListenerException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerException (int errorCode)
+

Parameters

+
+
+
+ errorCode +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HttpListenerException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpListenerException (int errorCode, string message)
+

Parameters

+
+
+
+ errorCode +
+
+ Documentation for this section has not yet been entered. +
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HttpListenerException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected HttpListenerException (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext)
+

Parameters

+
+
+
+ serializationInfo +
+
+ Documentation for this section has not yet been entered. +
+
+ streamingContext +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ErrorCode Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override int ErrorCode { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html new file mode 100644 index 00000000..08903cf5 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerPrefixCollection.html @@ -0,0 +1,684 @@ + + + WebSocketSharp.Net.HttpListenerPrefixCollection + + + + + + + +

HttpListenerPrefixCollection Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class HttpListenerPrefixCollection : ICollection<string>, IEnumerable<string>
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + +
[read-only]
+ + Count + + + + int + . Documentation for this section has not yet been entered.
[read-only]
+ + IsReadOnly + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + IsSynchronized + + + + bool + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Add + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Clear + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Contains + (string) : bool
Documentation for this section has not yet been entered.
+
+
+
+ + CopyTo + (Array, int)
Documentation for this section has not yet been entered.
+
+
+
+ + CopyTo + (string[], int)
Documentation for this section has not yet been entered.
+
+
+
+ + GetEnumerator + () : IEnumerator<string>
Documentation for this section has not yet been entered.
+
+
+
+ + Remove + (string) : bool
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + IEnumerable.GetEnumerator + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (string uriPrefix)
+

Parameters

+
+
+
+ uriPrefix +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Clear Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Clear ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Contains Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Contains (string uriPrefix)
+

Parameters

+
+
+
+ uriPrefix +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CopyTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void CopyTo (Array array, int offset)
+

Parameters

+
+
+
+ array +
+
+ Documentation for this section has not yet been entered. +
+
+ offset +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CopyTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void CopyTo (string[] array, int offset)
+

Parameters

+
+
+
+ array +
+
+ Documentation for this section has not yet been entered. +
+
+ offset +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Count Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int Count { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerator<string> GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsReadOnly Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsReadOnly { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSynchronized Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsSynchronized { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Remove Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Remove (string uriPrefix)
+

Parameters

+
+
+
+ uriPrefix +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.Collections.IEnumerable.GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ IEnumerator System.Collections.IEnumerable.GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerRequest.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerRequest.html new file mode 100644 index 00000000..344302b6 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerRequest.html @@ -0,0 +1,1265 @@ + + + WebSocketSharp.Net.HttpListenerRequest + + + + + + + +

HttpListenerRequest Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public sealed class HttpListenerRequest
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + AcceptTypes + + + + string[]. Documentation for this section has not yet been entered.
[read-only]
+ + ClientCertificateError + + + + int + . Documentation for this section has not yet been entered.
[read-only]
+ + ContentEncoding + + + + System.Text.Encoding + . Documentation for this section has not yet been entered.
[read-only]
+ + ContentLength64 + + + + long + . Documentation for this section has not yet been entered.
[read-only]
+ + ContentType + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + Cookies + + + + CookieCollection + . Documentation for this section has not yet been entered.
[read-only]
+ + HasEntityBody + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + Headers + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered.
[read-only]
+ + HttpMethod + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + InputStream + + + + System.IO.Stream + . Documentation for this section has not yet been entered.
[read-only]
+ + IsAuthenticated + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + IsLocal + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + IsSecureConnection + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + IsWebSocketRequest + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + KeepAlive + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + LocalEndPoint + + + + System.Net.IPEndPoint + . Documentation for this section has not yet been entered.
[read-only]
+ + ProtocolVersion + + + + Version + . Documentation for this section has not yet been entered.
[read-only]
+ + QueryString + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered.
[read-only]
+ + RawUrl + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + RemoteEndPoint + + + + System.Net.IPEndPoint + . Documentation for this section has not yet been entered.
[read-only]
+ + RequestTraceIdentifier + + + + Guid + . Documentation for this section has not yet been entered.
[read-only]
+ + Url + + + + Uri + . Documentation for this section has not yet been entered.
[read-only]
+ + UrlReferrer + + + + Uri + . Documentation for this section has not yet been entered.
[read-only]
+ + UserAgent + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + UserHostAddress + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + UserHostName + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + UserLanguages + + + + string[]. Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + +
+
+
+
+ + BeginGetClientCertificate + (AsyncCallback, object) : IAsyncResult
Documentation for this section has not yet been entered.
+
+
+
+ + EndGetClientCertificate + (IAsyncResult) : System.Security.Cryptography.X509Certificates.X509Certificate2
Documentation for this section has not yet been entered.
+
+
+
+ + GetClientCertificate + () : System.Security.Cryptography.X509Certificates.X509Certificate2
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

AcceptTypes Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string[] AcceptTypes { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

BeginGetClientCertificate Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IAsyncResult BeginGetClientCertificate (AsyncCallback requestCallback, object state)
+

Parameters

+
+
+
+ requestCallback +
+
+ Documentation for this section has not yet been entered. +
+
+ state +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ClientCertificateError Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int ClientCertificateError { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ContentEncoding Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public System.Text.Encoding ContentEncoding { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ContentLength64 Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public long ContentLength64 { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ContentType Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string ContentType { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Cookies Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public CookieCollection Cookies { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

EndGetClientCertificate Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Parameters

+
+
+
+ asyncResult +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetClientCertificate Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HasEntityBody Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool HasEntityBody { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Headers Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HttpMethod Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string HttpMethod { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

InputStream Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public System.IO.Stream InputStream { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsAuthenticated Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsAuthenticated { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsLocal Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsLocal { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSecureConnection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsSecureConnection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsWebSocketRequest Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsWebSocketRequest { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

KeepAlive Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool KeepAlive { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

LocalEndPoint Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public System.Net.IPEndPoint LocalEndPoint { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ProtocolVersion Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Version ProtocolVersion { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

QueryString Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RawUrl Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string RawUrl { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RemoteEndPoint Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public System.Net.IPEndPoint RemoteEndPoint { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RequestTraceIdentifier Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Guid RequestTraceIdentifier { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Url Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Uri Url { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UrlReferrer Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Uri UrlReferrer { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UserAgent Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string UserAgent { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UserHostAddress Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string UserHostAddress { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UserHostName Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string UserHostName { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UserLanguages Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string[] UserLanguages { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerResponse.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerResponse.html new file mode 100644 index 00000000..ab8ecd56 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerResponse.html @@ -0,0 +1,1080 @@ + + + WebSocketSharp.Net.HttpListenerResponse + + + + + + + +

HttpListenerResponse Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public sealed class HttpListenerResponse : IDisposable
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + ContentEncoding + + + + System.Text.Encoding + . Documentation for this section has not yet been entered.
+
+
+
+ + ContentLength64 + + + + long + . Documentation for this section has not yet been entered.
+
+
+
+ + ContentType + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + Cookies + + + + CookieCollection + . Documentation for this section has not yet been entered.
+
+
+
+ + Headers + + + + WebHeaderCollection + . Documentation for this section has not yet been entered.
+
+
+
+ + KeepAlive + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + OutputStream + + + + System.IO.Stream + . Documentation for this section has not yet been entered.
+
+
+
+ + ProtocolVersion + + + + Version + . Documentation for this section has not yet been entered.
+
+
+
+ + RedirectLocation + + + + string + . Documentation for this section has not yet been entered.
+
+
+
+ + SendChunked + + + + bool + . Documentation for this section has not yet been entered.
+
+
+
+ + StatusCode + + + + int + . Documentation for this section has not yet been entered.
+
+
+
+ + StatusDescription + + + + string + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Abort + ()
Documentation for this section has not yet been entered.
+
+
+
+ + AddHeader + (string, string)
Documentation for this section has not yet been entered.
+
+
+
+ + AppendCookie + (Cookie)
Documentation for this section has not yet been entered.
+
+
+
+ + AppendHeader + (string, string)
Documentation for this section has not yet been entered.
+
+
+
+ + Close + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Close + (byte[], bool)
Documentation for this section has not yet been entered.
+
+
+
+ + CopyFrom + (HttpListenerResponse)
Documentation for this section has not yet been entered.
+
+
+
+ + Redirect + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + SetCookie + (Cookie)
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + IDisposable.Dispose + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
static
+
+ + WriteContent + (this HttpListenerResponse, byte[])
+ Writes the specified content data using the specified WebSocketSharp.Net.HttpListenerResponse. +
+
+
+
+
+
+

Member Details

+
+

Abort Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Abort ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AddHeader Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void AddHeader (string name, string value)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AppendCookie Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void AppendCookie (Cookie cookie)
+

Parameters

+
+
+
+ cookie +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AppendHeader Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void AppendHeader (string name, string value)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Close ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Close (byte[] responseEntity, bool willBlock)
+

Parameters

+
+
+
+ responseEntity +
+
+ Documentation for this section has not yet been entered. +
+
+ willBlock +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ContentEncoding Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public System.Text.Encoding ContentEncoding { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ContentLength64 Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public long ContentLength64 { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ContentType Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string ContentType { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Cookies Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public CookieCollection Cookies { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CopyFrom Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void CopyFrom (HttpListenerResponse templateResponse)
+

Parameters

+
+
+
+ templateResponse +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Headers Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebHeaderCollection Headers { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

KeepAlive Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool KeepAlive { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OutputStream Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public System.IO.Stream OutputStream { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ProtocolVersion Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Version ProtocolVersion { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Redirect Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Redirect (string url)
+

Parameters

+
+
+
+ url +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RedirectLocation Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string RedirectLocation { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SendChunked Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool SendChunked { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SetCookie Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void SetCookie (Cookie cookie)
+

Parameters

+
+
+
+ cookie +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

StatusCode Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int StatusCode { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

StatusDescription Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string StatusDescription { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.IDisposable.Dispose Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ void System.IDisposable.Dispose ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerWebSocketContext.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerWebSocketContext.html new file mode 100644 index 00000000..2621ace8 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpListenerWebSocketContext.html @@ -0,0 +1,902 @@ + + + WebSocketSharp.Net.HttpListenerWebSocketContext + + + + + + + +

HttpListenerWebSocketContext Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class HttpListenerWebSocketContext : WebSocketContext
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + WebSocketContext. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
override
+ + CookieCollection + + + + CookieCollection + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + CookieCollection + + + + CookieCollection + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + Headers + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + Headers + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + IsAuthenticated + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsAuthenticated + + + + bool + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + IsLocal + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsLocal + + + + bool + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + IsSecureConnection + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsSecureConnection + + + + bool + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + Origin + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + Origin + + + + string + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
+ + Path + + + + string + . Documentation for this section has not yet been entered.
[read-only]
override
+ + RequestUri + + + + Uri + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + RequestUri + + + + Uri + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + SecWebSocketKey + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketKey + + + + string + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + SecWebSocketProtocols + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketProtocols + + + + IEnumerable<string> + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
override
+ + SecWebSocketVersion + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketVersion + + + + string + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
+ + ServerEndPoint + + + + System.Net.IPEndPoint + . Documentation for this section has not yet been entered.
[read-only]
override
+ + User + + + + System.Security.Principal.IPrincipal + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + User + + + + System.Security.Principal.IPrincipal + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
[read-only]
+ + UserEndPoint + + + + System.Net.IPEndPoint + . Documentation for this section has not yet been entered.
[read-only]
override
+ + WebSocket + + + + WebSocketSharp.WebSocket + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + WebSocket + + + + WebSocketSharp.WebSocket + . Documentation for this section has not yet been entered. (Inherited from WebSocketContext.)
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

CookieCollection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override CookieCollection CookieCollection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Headers Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsAuthenticated Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool IsAuthenticated { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsLocal Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool IsLocal { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSecureConnection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override bool IsSecureConnection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Origin Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string Origin { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Path Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public virtual string Path { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RequestUri Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override Uri RequestUri { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketKey Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string SecWebSocketKey { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketProtocols Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override IEnumerable<string> SecWebSocketProtocols { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketVersion Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string SecWebSocketVersion { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ServerEndPoint Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public virtual System.Net.IPEndPoint ServerEndPoint { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

User Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override System.Security.Principal.IPrincipal User { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UserEndPoint Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public virtual System.Net.IPEndPoint UserEndPoint { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocket Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override WebSocketSharp.WebSocket WebSocket { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpStatusCode.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpStatusCode.html new file mode 100644 index 00000000..f6a29c89 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpStatusCode.html @@ -0,0 +1,608 @@ + + + WebSocketSharp.Net.HttpStatusCode + + + + + + + +

HttpStatusCode Enum

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public enum HttpStatusCode
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Members

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Member NameDescription
+ Accepted + + Documentation for this section has not yet been entered. +
+ Ambiguous + + Documentation for this section has not yet been entered. +
+ BadGateway + + Documentation for this section has not yet been entered. +
+ BadRequest + + Documentation for this section has not yet been entered. +
+ Conflict + + Documentation for this section has not yet been entered. +
+ Continue + + Documentation for this section has not yet been entered. +
+ Created + + Documentation for this section has not yet been entered. +
+ ExpectationFailed + + Documentation for this section has not yet been entered. +
+ Forbidden + + Documentation for this section has not yet been entered. +
+ Found + + Documentation for this section has not yet been entered. +
+ GatewayTimeout + + Documentation for this section has not yet been entered. +
+ Gone + + Documentation for this section has not yet been entered. +
+ HttpVersionNotSupported + + Documentation for this section has not yet been entered. +
+ InternalServerError + + Documentation for this section has not yet been entered. +
+ LengthRequired + + Documentation for this section has not yet been entered. +
+ MethodNotAllowed + + Documentation for this section has not yet been entered. +
+ Moved + + Documentation for this section has not yet been entered. +
+ MovedPermanently + + Documentation for this section has not yet been entered. +
+ MultipleChoices + + Documentation for this section has not yet been entered. +
+ NoContent + + Documentation for this section has not yet been entered. +
+ NonAuthoritativeInformation + + Documentation for this section has not yet been entered. +
+ NotAcceptable + + Documentation for this section has not yet been entered. +
+ NotFound + + Documentation for this section has not yet been entered. +
+ NotImplemented + + Documentation for this section has not yet been entered. +
+ NotModified + + Documentation for this section has not yet been entered. +
+ OK + + Documentation for this section has not yet been entered. +
+ PartialContent + + Documentation for this section has not yet been entered. +
+ PaymentRequired + + Documentation for this section has not yet been entered. +
+ PreconditionFailed + + Documentation for this section has not yet been entered. +
+ ProxyAuthenticationRequired + + Documentation for this section has not yet been entered. +
+ Redirect + + Documentation for this section has not yet been entered. +
+ RedirectKeepVerb + + Documentation for this section has not yet been entered. +
+ RedirectMethod + + Documentation for this section has not yet been entered. +
+ RequestedRangeNotSatisfiable + + Documentation for this section has not yet been entered. +
+ RequestEntityTooLarge + + Documentation for this section has not yet been entered. +
+ RequestTimeout + + Documentation for this section has not yet been entered. +
+ RequestUriTooLong + + Documentation for this section has not yet been entered. +
+ ResetContent + + Documentation for this section has not yet been entered. +
+ SeeOther + + Documentation for this section has not yet been entered. +
+ ServiceUnavailable + + Documentation for this section has not yet been entered. +
+ SwitchingProtocols + + Documentation for this section has not yet been entered. +
+ TemporaryRedirect + + Documentation for this section has not yet been entered. +
+ Unauthorized + + Documentation for this section has not yet been entered. +
+ UnsupportedMediaType + + Documentation for this section has not yet been entered. +
+ Unused + + Documentation for this section has not yet been entered. +
+ UseProxy + + Documentation for this section has not yet been entered. +
+
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/HttpVersion.html b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpVersion.html new file mode 100644 index 00000000..c3a96abd --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/HttpVersion.html @@ -0,0 +1,376 @@ + + + WebSocketSharp.Net.HttpVersion + + + + + + + +

HttpVersion Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class HttpVersion
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+
+ + HttpVersion + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+

Public Fields

+
+
+ + + + + + + + + + + +
+
static readonly
+
+ + Version10 + + + + Version + . Documentation for this section has not yet been entered.
+
static readonly
+
+ + Version11 + + + + Version + . Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

HttpVersion Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpVersion ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Version10 Field

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static readonly Version Version10
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Version11 Field

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static readonly Version Version11
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/WebHeaderCollection.html b/websocket-sharp/doc/html/WebSocketSharp.Net/WebHeaderCollection.html new file mode 100644 index 00000000..91e60130 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/WebHeaderCollection.html @@ -0,0 +1,1582 @@ + + + WebSocketSharp.Net.WebHeaderCollection + + + + + + + +

WebHeaderCollection Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
[System.Runtime.InteropServices.ComVisible(true)]
public class WebHeaderCollection : System.Collections.Specialized.NameValueCollection, System.Runtime.Serialization.ISerializable
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + System.Collections.Specialized.NameValueCollection. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Protected Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
override
+ + AllKeys + + + + string[]. Documentation for this section has not yet been entered.
[read-only]
override
+ + Count + + + + int + . Documentation for this section has not yet been entered.
+
+ default property +
+
+
+
+ + Item + (System.Net.HttpRequestHeader) + + string + . Documentation for this section has not yet been entered.
+
+ default property +
+
+
+
+ + Item + (System.Net.HttpResponseHeader) + + string + . Documentation for this section has not yet been entered.
[read-only]
override
+ + Keys + + + + System.Collections.Specialized.NameObjectCollectionBase.KeysCollection + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Add + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Add + (System.Net.HttpRequestHeader, string)
Documentation for this section has not yet been entered.
+
+
+
+ + Add + (System.Net.HttpResponseHeader, string)
Documentation for this section has not yet been entered.
+
override
+
+ + Add + (string, string)
Documentation for this section has not yet been entered.
+
override
+
+ + Clear + ()
Documentation for this section has not yet been entered.
+
override
+
+ + Get + (int) : string
Documentation for this section has not yet been entered.
+
override
+
+ + Get + (string) : string
Documentation for this section has not yet been entered.
+
override
+
+ + GetEnumerator + () : IEnumerator
Documentation for this section has not yet been entered.
+
override
+
+ + GetKey + (int) : string
Documentation for this section has not yet been entered.
+
override
+
+ + GetObjectData + (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)
Documentation for this section has not yet been entered.
+
override
+
+ + GetValues + (int) : string[]
Documentation for this section has not yet been entered.
+
override
+
+ + GetValues + (string) : string[]
Documentation for this section has not yet been entered.
+
static
+
+ + IsRestricted + (string) : bool
Documentation for this section has not yet been entered.
+
static
+
+ + IsRestricted + (string, bool) : bool
Documentation for this section has not yet been entered.
+
override
+
+ + OnDeserialization + (object)
Documentation for this section has not yet been entered.
+
+
+
+ + Remove + (System.Net.HttpRequestHeader)
Documentation for this section has not yet been entered.
+
+
+
+ + Remove + (System.Net.HttpResponseHeader)
Documentation for this section has not yet been entered.
+
override
+
+ + Remove + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Set + (System.Net.HttpRequestHeader, string)
Documentation for this section has not yet been entered.
+
+
+
+ + Set + (System.Net.HttpResponseHeader, string)
Documentation for this section has not yet been entered.
+
override
+
+ + Set + (string, string)
Documentation for this section has not yet been entered.
+
+
+
+ + ToByteArray + () : byte[]
Documentation for this section has not yet been entered.
+
override
+
+ + ToString + () : string
Documentation for this section has not yet been entered.
+
+
+

Protected Methods

+
+
+ + + + + +
+
+
+
+ + AddWithoutValidate + (string, string)
Documentation for this section has not yet been entered.
+
+
+

Explicitly Implemented Interface Members

+
+
+ + + + + + +
+
+
+
+ + System.Runtime.Serialization.ISerializable.GetObjectData + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + + + + + + + + + +
+
static
+
+ + Exists + (this System.Collections.Specialized.NameValueCollection, string) : bool
+ Determines whether the entry with the specified key exists in the specified System.Collections.Specialized.NameValueCollection. +
+
static
+
+ + Exists + (this System.Collections.Specialized.NameValueCollection, string, string) : bool
+ Determines whether the entry with the specified both key and value exists in the specified System.Collections.Specialized.NameValueCollection. +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebHeaderCollection Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebHeaderCollection ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebHeaderCollection Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected WebHeaderCollection (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext)
+

Parameters

+
+
+
+ serializationInfo +
+
+ Documentation for this section has not yet been entered. +
+
+ streamingContext +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (string header)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (System.Net.HttpRequestHeader header, string value)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (System.Net.HttpResponseHeader header, string value)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void Add (string name, string value)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AddWithoutValidate Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected void AddWithoutValidate (string headerName, string headerValue)
+

Parameters

+
+
+
+ headerName +
+
+ Documentation for this section has not yet been entered. +
+
+ headerValue +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AllKeys Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string[] AllKeys { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Clear Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void Clear ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Count Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override int Count { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Get Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string Get (int index)
+

Parameters

+
+
+
+ index +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Get Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string Get (string name)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetEnumerator Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override IEnumerator GetEnumerator ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetKey Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string GetKey (int index)
+

Parameters

+
+
+
+ index +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetObjectData Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void GetObjectData (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext)
+

Parameters

+
+
+
+ serializationInfo +
+
+ Documentation for this section has not yet been entered. +
+
+ streamingContext +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetValues Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string[] GetValues (int index)
+

Parameters

+
+
+
+ index +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetValues Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string[] GetValues (string header)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsRestricted Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static bool IsRestricted (string headerName)
+

Parameters

+
+
+
+ headerName +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsRestricted Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public static bool IsRestricted (string headerName, bool response)
+

Parameters

+
+
+
+ headerName +
+
+ Documentation for this section has not yet been entered. +
+
+ response +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Item Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+

+ This is the default property for this class. +

public string this [System.Net.HttpRequestHeader hrh] { get; set; }
+

Parameters

+
+
+
+ hrh +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Item Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+

+ This is the default property for this class. +

public string this [System.Net.HttpResponseHeader hrh] { get; set; }
+

Parameters

+
+
+
+ hrh +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Keys Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnDeserialization Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void OnDeserialization (object sender)
+

Parameters

+
+
+
+ sender +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Remove Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Remove (System.Net.HttpRequestHeader header)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Remove Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Remove (System.Net.HttpResponseHeader header)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Remove Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void Remove (string name)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Set Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Set (System.Net.HttpRequestHeader header, string value)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Set Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Set (System.Net.HttpResponseHeader header, string value)
+

Parameters

+
+
+
+ header +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Set Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void Set (string name, string value)
+

Parameters

+
+
+
+ name +
+
+ Documentation for this section has not yet been entered. +
+
+ value +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

System.Runtime.Serialization.ISerializable.GetObjectData Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
+ void System.Runtime.Serialization.ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext)
+

Parameters

+
+
+
+ serializationInfo +
+
+ Documentation for this section has not yet been entered. +
+
+ streamingContext +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToByteArray Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] ToByteArray ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToString Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override string ToString ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/WebSocketContext.html b/websocket-sharp/doc/html/WebSocketSharp.Net/WebSocketContext.html new file mode 100644 index 00000000..14e90fa8 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/WebSocketContext.html @@ -0,0 +1,700 @@ + + + WebSocketSharp.Net.WebSocketContext + + + + + + + +

WebSocketContext Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public abstract class WebSocketContext
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Protected Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
abstract
+ + CookieCollection + + + + CookieCollection + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + Headers + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsAuthenticated + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsLocal + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + IsSecureConnection + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + Origin + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + RequestUri + + + + Uri + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketKey + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketProtocols + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + SecWebSocketVersion + + + + string + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + User + + + + System.Security.Principal.IPrincipal + . Documentation for this section has not yet been entered.
[read-only]
abstract
+ + WebSocket + + + + WebSocketSharp.WebSocket + . Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebSocketContext Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected WebSocketContext ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

CookieCollection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract CookieCollection CookieCollection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Headers Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsAuthenticated Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract bool IsAuthenticated { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsLocal Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract bool IsLocal { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSecureConnection Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract bool IsSecureConnection { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Origin Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract string Origin { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RequestUri Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract Uri RequestUri { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketKey Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract string SecWebSocketKey { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketProtocols Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract IEnumerable<string> SecWebSocketProtocols { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SecWebSocketVersion Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract string SecWebSocketVersion { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

User Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract System.Security.Principal.IPrincipal User { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocket Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public abstract WebSocketSharp.WebSocket WebSocket { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Net
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Net/index.html b/websocket-sharp/doc/html/WebSocketSharp.Net/index.html new file mode 100644 index 00000000..7dc57ad3 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Net/index.html @@ -0,0 +1,342 @@ + + + websocket-sharp: WebSocketSharp.Net + + + + + + +

WebSocketSharp.Net Namespace

+

+

+
+
+
+

Namespace

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ AuthenticationSchemes + + Documentation for this section has not yet been entered. +
+ AuthenticationSchemeSelector + + Documentation for this section has not yet been entered. +
+ Cookie + + Documentation for this section has not yet been entered. +
+ CookieCollection + + Documentation for this section has not yet been entered. +
+ CookieException + + Documentation for this section has not yet been entered. +
+ HttpListener + + Documentation for this section has not yet been entered. +
+ HttpListenerContext + + Documentation for this section has not yet been entered. +
+ HttpListenerException + + Documentation for this section has not yet been entered. +
+ HttpListenerPrefixCollection + + Documentation for this section has not yet been entered. +
+ HttpListenerRequest + + Documentation for this section has not yet been entered. +
+ HttpListenerResponse + + Documentation for this section has not yet been entered. +
+ HttpListenerWebSocketContext + + Documentation for this section has not yet been entered. +
+ HttpStatusCode + + Documentation for this section has not yet been entered. +
+ HttpVersion + + Documentation for this section has not yet been entered. +
+ WebHeaderCollection + + Documentation for this section has not yet been entered. +
+ WebSocketContext + + Documentation for this section has not yet been entered. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/HttpServer.html b/websocket-sharp/doc/html/WebSocketSharp.Server/HttpServer.html new file mode 100644 index 00000000..1ffe6b25 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/HttpServer.html @@ -0,0 +1,912 @@ + + + WebSocketSharp.Server.HttpServer + + + + + + + +

HttpServer Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class HttpServer
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + + + + + + +
+
+
+
+
+ + HttpServer + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+
+
+ + HttpServer + (int)
+
+ Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + +
[read-only]
+ + Port + + + + int + . Documentation for this section has not yet been entered.
[read-only]
+ + ServicePath + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
+
+
+
+ + Sweeped + + + + bool + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+ + AddService<T> + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + GetFile + (string) : byte[]
Documentation for this section has not yet been entered.
+
+
+
+ + Start + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+

Public Events

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + OnConnect + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnDelete + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnError + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnGet + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnHead + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnOptions + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnPatch + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnPost + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnPut + + + Documentation for this section has not yet been entered. +
+
+
+
+ + OnTrace + + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

HttpServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpServer ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

HttpServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public HttpServer (int port)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AddService<T> Generic Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void AddService<T> (string absPath)
where T : WebSocketSharp.Server.WebSocketService, new()
+

Type Parameters

+
+
+
+ T +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Parameters

+
+
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetFile Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public byte[] GetFile (string path)
+

Parameters

+
+
+
+ path +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnConnect Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnConnect
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnDelete Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnDelete
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnError Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnGet Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnHead Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnHead
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnOptions Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnOptions
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnPatch Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnPatch
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnPost Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnPost
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnPut Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnTrace Event

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public event EventHandler<ResponseEventArgs> OnTrace
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Port Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int Port { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ServicePath Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<string> ServicePath { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Start Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Start ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweeped Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Sweeped { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/IServiceHost.html b/websocket-sharp/doc/html/WebSocketSharp.Server/IServiceHost.html new file mode 100644 index 00000000..1e588810 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/IServiceHost.html @@ -0,0 +1,451 @@ + + + WebSocketSharp.Server.IServiceHost + + + + + + + +

IServiceHost Interface

+

+ Exposes the methods and property for the WebSocket service host. +

+
+

Syntax

+
public interface IServiceHost
+
+
+

Remarks

+
+
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

Public Properties

+
+
+ + + + + + +
+
+
+
+ + Sweeped + + + + bool + . + Indicates whether the WebSocket service host closes the connection to a inactive service client. +
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+ + BindWebSocket + (WebSocketSharp.WebSocket)
+ Binds the specified WebSocketSharp.WebSocket. +
+
+
+
+ + Broadcast + (string)
+ Broadcasts the specified string. +
+
+
+
+ + Start + ()
+ Starts the WebSocket service host. +
+
+
+
+ + Stop + ()
+ Stops the WebSocket service host. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

BindWebSocket Method

+
+

+ Binds the specified WebSocketSharp.WebSocket. +

+

Syntax

+
public void BindWebSocket (WebSocketSharp.WebSocket socket)
+

Parameters

+
+
+
+ socket +
+
+ An WebSocketSharp.WebSocket to bind. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadcast Method

+
+

+ Broadcasts the specified string. +

+

Syntax

+
public void Broadcast (string data)
+

Parameters

+
+
+
+ data +
+
+ A string to broadcast. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Start Method

+
+

+ Starts the WebSocket service host. +

+

Syntax

+
public void Start ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Stops the WebSocket service host. +

+

Syntax

+
public void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweeped Property

+
+

+ Indicates whether the WebSocket service host closes the connection to a inactive service client. +

+

Syntax

+
public bool Sweeped { get; set; }
+

Value

+
+ true if the WebSocket service host closes the connection to a inactive service client; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/ResponseEventArgs.html b/websocket-sharp/doc/html/WebSocketSharp.Server/ResponseEventArgs.html new file mode 100644 index 00000000..34bf84b4 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/ResponseEventArgs.html @@ -0,0 +1,391 @@ + + + WebSocketSharp.Server.ResponseEventArgs + + + + + + + +

ResponseEventArgs Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class ResponseEventArgs : EventArgs
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + EventArgs. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + +
[read-only]
+ + Request + + + + WebSocketSharp.Net.HttpListenerRequest + . Documentation for this section has not yet been entered.
[read-only]
+ + Response + + + + WebSocketSharp.Net.HttpListenerResponse + . Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

ResponseEventArgs Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public ResponseEventArgs (WebSocketSharp.Net.HttpListenerContext context)
+

Parameters

+
+
+
+ context +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Request Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Response Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/ServiceManager.html b/websocket-sharp/doc/html/WebSocketSharp.Server/ServiceManager.html new file mode 100644 index 00000000..1ab9d98c --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/ServiceManager.html @@ -0,0 +1,607 @@ + + + WebSocketSharp.Server.ServiceManager + + + + + + + +

ServiceManager Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class ServiceManager
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+
+ + ServiceManager + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Count + + + + int + . Documentation for this section has not yet been entered.
[read-only]
+ + Path + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
[read-only]
+ + ServiceHost + + + + IEnumerable<IServiceHost> + . Documentation for this section has not yet been entered.
+
+
+
+ + Sweeped + + + + bool + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+ + Add + (string, IServiceHost)
Documentation for this section has not yet been entered.
+
+
+
+ + Broadcast + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+
+ + TryGetServiceHost + (string, out IServiceHost) : bool
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

ServiceManager Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public ServiceManager ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Add (string absPath, IServiceHost svcHost)
+

Parameters

+
+
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+ svcHost +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadcast Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Broadcast (string data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Count Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int Count { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Path Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<string> Path { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ServiceHost Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<IServiceHost> ServiceHost { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweeped Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Sweeped { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

TryGetServiceHost Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool TryGetServiceHost (string absPath, out IServiceHost svcHost)
+

Parameters

+
+
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+ svcHost +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/SessionManager.html b/websocket-sharp/doc/html/WebSocketSharp.Server/SessionManager.html new file mode 100644 index 00000000..9db822c8 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/SessionManager.html @@ -0,0 +1,857 @@ + + + WebSocketSharp.Server.SessionManager + + + + + + + +

SessionManager Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class SessionManager
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+
+ + SessionManager + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + ActiveID + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
[read-only]
+ + Count + + + + int + . Documentation for this section has not yet been entered.
[read-only]
+ + ID + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
[read-only]
+ + InactiveID + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
+
+
+
+ + Sweeped + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + SyncRoot + + + + object + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Add + (WebSocketService) : string
Documentation for this section has not yet been entered.
+
+
+
+ + Broadcast + (byte[])
Documentation for this section has not yet been entered.
+
+
+
+ + Broadcast + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Broadping + (string) : Dictionary<string, bool>
Documentation for this section has not yet been entered.
+
+
+
+ + Remove + (string) : bool
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + (WebSocketSharp.Frame.CloseStatusCode, string)
Documentation for this section has not yet been entered.
+
+
+
+ + Sweep + ()
Documentation for this section has not yet been entered.
+
+
+
+ + TryGetByID + (string, out WebSocketService) : bool
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

SessionManager Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public SessionManager ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ActiveID Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<string> ActiveID { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Add Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string Add (WebSocketService service)
+

Parameters

+
+
+
+ service +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadcast Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Broadcast (byte[] data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadcast Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Broadcast (string data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadping Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Dictionary<string, bool> Broadping (string message)
+

Parameters

+
+
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Count Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public int Count { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ID Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<string> ID { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

InactiveID Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<string> InactiveID { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Remove Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Remove (string id)
+

Parameters

+
+
+
+ id +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Parameters

+
+
+
+ code +
+
+ Documentation for this section has not yet been entered. +
+
+ reason +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweep Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Sweep ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweeped Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Sweeped { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SyncRoot Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public object SyncRoot { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

TryGetByID Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool TryGetByID (string id, out WebSocketService service)
+

Parameters

+
+
+
+ id +
+
+ Documentation for this section has not yet been entered. +
+
+ service +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServer.html b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServer.html new file mode 100644 index 00000000..29be67b2 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServer.html @@ -0,0 +1,925 @@ + + + WebSocketSharp.Server.WebSocketServer + + + + + + + +

WebSocketServer Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class WebSocketServer : WebSocketServerBase
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + WebSocketServerBase. +

+

Public Constructors

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + WebSocketServer + ()
+
+ Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Address + + + + System.Net.IPAddress + . + Gets the local IP address on which to listen for incoming connection attempts. + (Inherited from WebSocketServerBase.)
[read-only]
+ + IsSecure + + + + bool + . + Gets a value indicating whether this server is secure. + (Inherited from WebSocketServerBase.)
[read-only]
+ + IsSelfHost + + + + bool + . + Gets a value indicating whether this server is self host. + (Inherited from WebSocketServerBase.)
[read-only]
+ + Port + + + + int + . + Gets the port on which to listen for incoming connection attempts. + (Inherited from WebSocketServerBase.)
[read-only]
+ + ServicePath + + + + IEnumerable<string> + . Documentation for this section has not yet been entered.
+
+
+
+ + Sweeped + + + + bool + . Documentation for this section has not yet been entered.
+
+
+

Protected Properties

+
+
+ + + + + + +
+
+
+
+ + BaseUri + + + + Uri + . + Gets or sets the WebSocket URL on which to listen for incoming connection attempts. + (Inherited from WebSocketServerBase.)
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + AddService<T> + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Broadcast + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Start + ()
+ Starts to receive the WebSocket connection requests. + (Inherited from WebSocketServerBase.)
+
override
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
+ Stops receiving the WebSocket connection requests. + (Inherited from WebSocketServerBase.)
+
+
+

Protected Methods

+
+
+ + + + + + + + + + + + + +
+
override
+
+ + AcceptWebSocket + (System.Net.Sockets.TcpClient)
Documentation for this section has not yet been entered.
+
abstract
+
+ + AcceptWebSocket + (System.Net.Sockets.TcpClient)
+ Accepts the WebSocket connection. + (Inherited from WebSocketServerBase.)
+
+
+
+ + Error + (string)
+ Occurs the WebSocketServerBase.OnError event with the specified message. + (Inherited from WebSocketServerBase.)
+
+
+

Public Events

+
+
+ + + + + + +
+
+
+
+ + OnError + + + Occurs when this server gets an error. + (Inherited from WebSocketServerBase.)
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebSocketServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServer ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServer (int port)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServer (string url)
+

Parameters

+
+
+
+ url +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServer (int port, bool secure)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ secure +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServer (System.Net.IPAddress address, int port)
+

Parameters

+
+
+
+ address +
+
+ Documentation for this section has not yet been entered. +
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServer Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServer (System.Net.IPAddress address, int port, bool secure)
+

Parameters

+
+
+
+ address +
+
+ Documentation for this section has not yet been entered. +
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ secure +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AcceptWebSocket Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected override void AcceptWebSocket (System.Net.Sockets.TcpClient client)
+

Parameters

+
+
+
+ client +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AddService<T> Generic Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void AddService<T> (string absPath)
where T : WebSocketSharp.Server.WebSocketService, new()
+

Type Parameters

+
+
+
+ T +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Parameters

+
+
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadcast Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Broadcast (string data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ServicePath Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public IEnumerable<string> ServicePath { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweeped Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Sweeped { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServerBase.html b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServerBase.html new file mode 100644 index 00000000..e7a96955 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServerBase.html @@ -0,0 +1,844 @@ + + + WebSocketSharp.Server.WebSocketServerBase + + + + + + + +

WebSocketServerBase Class

+

+ Provides the basic functions of the server that receives the WebSocket connection requests. +

+
+

Syntax

+
public abstract class WebSocketServerBase
+
+
+

Remarks

+
+ The WebSocketServerBase class is an abstract class. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Protected Constructors

+
+
+ + + + + + + + + + + + + + + + +
+
+
+
+ + + Initializes a new instance of the WebSocketSharp.Server.WebSocketServerBase class. +
+
+
+
+ + + Initializes a new instance of the WebSocketSharp.Server.WebSocketServerBase class that listens for incoming connection attempts + on the specified WebSocket URL. +
+
+
+
+ + + Initializes a new instance of the WebSocketSharp.Server.WebSocketServerBase class that listens for incoming connection attempts + on the specified address, port, absPath and secure. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Address + + + + System.Net.IPAddress + . + Gets the local IP address on which to listen for incoming connection attempts. +
[read-only]
+ + IsSecure + + + + bool + . + Gets a value indicating whether this server is secure. +
[read-only]
+ + IsSelfHost + + + + bool + . + Gets a value indicating whether this server is self host. +
[read-only]
+ + Port + + + + int + . + Gets the port on which to listen for incoming connection attempts. +
+
+
+

Protected Properties

+
+
+ + + + + + +
+
+
+
+ + BaseUri + + + + Uri + . + Gets or sets the WebSocket URL on which to listen for incoming connection attempts. +
+
+
+

Public Methods

+
+
+ + + + + + + + + +
+
+
+
+ + Start + ()
+ Starts to receive the WebSocket connection requests. +
+
+
+
+ + Stop + ()
+ Stops receiving the WebSocket connection requests. +
+
+
+

Protected Methods

+
+
+ + + + + + + + + +
+
abstract
+
+ + AcceptWebSocket + (System.Net.Sockets.TcpClient)
+ Accepts the WebSocket connection. +
+
+
+
+ + Error + (string)
+ Occurs the WebSocketServerBase.OnError event with the specified message. +
+
+
+

Public Events

+
+
+ + + + + + +
+
+
+
+ + OnError + + + Occurs when this server gets an error. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebSocketServerBase Constructor

+
+

+ Initializes a new instance of the WebSocketSharp.Server.WebSocketServerBase class. +

+

Syntax

+
protected WebSocketServerBase ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServerBase Constructor

+
+

+ Initializes a new instance of the WebSocketSharp.Server.WebSocketServerBase class that listens for incoming connection attempts + on the specified WebSocket URL. +

+

Syntax

+
protected WebSocketServerBase (string url)
+

Parameters

+
+
+
+ url +
+
+ A string that contains a WebSocket URL. +
+
+
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + url is null. +
+ ArgumentException + + url is invalid. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServerBase Constructor

+
+

+ Initializes a new instance of the WebSocketSharp.Server.WebSocketServerBase class that listens for incoming connection attempts + on the specified address, port, absPath and secure. +

+

Syntax

+
protected WebSocketServerBase (System.Net.IPAddress address, int port, string absPath, bool secure)
+

Parameters

+
+
+
+ address +
+
+ An System.Net.IPAddress that contains a local IP address. +
+
+ port +
+
+ An int that contains a port number. +
+
+ absPath +
+
+ A string that contains a absolute path. +
+
+ secure +
+
+ A bool that indicates providing a secure connection or not. (true indicates providing a secure connection.) +
+
+
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + Either address or absPath is null. +
+ ArgumentException + +

+ absPath is invalid. +

+

+ -or- +

+

+ Pair of port and secure is invalid. +

+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AcceptWebSocket Method

+
+

+ Accepts the WebSocket connection. +

+

Syntax

+
protected abstract void AcceptWebSocket (System.Net.Sockets.TcpClient client)
+

Parameters

+
+
+
+ client +
+
+ A System.Net.Sockets.TcpClient that contains the WebSocket connection. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Address Property

+
+

+ Gets the local IP address on which to listen for incoming connection attempts. +

+

Syntax

+
public System.Net.IPAddress Address { get; }
+

Value

+
+ A System.Net.IPAddress that contains a local IP address. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

BaseUri Property

+
+

+ Gets or sets the WebSocket URL on which to listen for incoming connection attempts. +

+

Syntax

+
protected Uri BaseUri { get; set; }
+

Value

+
+ A Uri that contains a WebSocket URL. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Error Method

+
+

+ Occurs the WebSocketServerBase.OnError event with the specified message. +

+

Syntax

+
protected virtual void Error (string message)
+

Parameters

+
+
+
+ message +
+
+ A string that contains an error message. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSecure Property

+
+

+ Gets a value indicating whether this server is secure. +

+

Syntax

+
public bool IsSecure { get; }
+

Value

+
+ true if this server is secure; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSelfHost Property

+
+

+ Gets a value indicating whether this server is self host. +

+

Syntax

+
public bool IsSelfHost { get; }
+

Value

+
+ true if this server is self host; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnError Event

+
+

+ Occurs when this server gets an error. +

+

Syntax

+ +

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Port Property

+
+

+ Gets the port on which to listen for incoming connection attempts. +

+

Syntax

+
public int Port { get; }
+

Value

+
+ An int that contains a port number. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Start Method

+
+

+ Starts to receive the WebSocket connection requests. +

+

Syntax

+
public virtual void Start ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Stops receiving the WebSocket connection requests. +

+

Syntax

+
public virtual void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketService.html b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketService.html new file mode 100644 index 00000000..961ed057 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketService.html @@ -0,0 +1,1282 @@ + + + WebSocketSharp.Server.WebSocketService + + + + + + + +

WebSocketService Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public abstract class WebSocketService
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + +
[read-only]
+ + ID + + + + string + . Documentation for this section has not yet been entered.
[read-only]
+ + IsBound + + + + bool + . Documentation for this section has not yet been entered.
+
+
+

Protected Properties

+
+
+ + + + + + + + + + + +
[read-only]
+ + QueryString + + + + System.Collections.Specialized.NameValueCollection + . Documentation for this section has not yet been entered.
[read-only]
+ + Sessions + + + + SessionManager + . Documentation for this section has not yet been entered.
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Bind + (WebSocketSharp.WebSocket, SessionManager)
Documentation for this section has not yet been entered.
+
+
+
+ + Ping + () : bool
Documentation for this section has not yet been entered.
+
+
+
+ + Ping + (string) : bool
Documentation for this section has not yet been entered.
+
+
+
+ + PingAround + () : Dictionary<string, bool>
Documentation for this section has not yet been entered.
+
+
+
+ + PingAround + (string) : Dictionary<string, bool>
Documentation for this section has not yet been entered.
+
+
+
+ + PingTo + (string) : bool
Documentation for this section has not yet been entered.
+
+
+
+ + PingTo + (string, string) : bool
Documentation for this section has not yet been entered.
+
+
+
+ + Publish + (byte[])
Documentation for this section has not yet been entered.
+
+
+
+ + Publish + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Send + (byte[])
Documentation for this section has not yet been entered.
+
+
+
+ + Send + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + SendTo + (string, byte[])
Documentation for this section has not yet been entered.
+
+
+
+ + SendTo + (string, string)
Documentation for this section has not yet been entered.
+
+
+
+ + Start + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + (ushort, string)
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + (WebSocketSharp.Frame.CloseStatusCode, string)
Documentation for this section has not yet been entered.
+
+
+

Protected Methods

+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+ + OnClose + (object, WebSocketSharp.CloseEventArgs)
Documentation for this section has not yet been entered.
+
+
+
+ + OnError + (object, WebSocketSharp.ErrorEventArgs)
Documentation for this section has not yet been entered.
+
+
+
+ + OnMessage + (object, WebSocketSharp.MessageEventArgs)
Documentation for this section has not yet been entered.
+
+
+
+ + OnOpen + (object, EventArgs)
Documentation for this section has not yet been entered.
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebSocketService Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketService ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Bind Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Bind (WebSocketSharp.WebSocket socket, SessionManager sessions)
+

Parameters

+
+
+
+ socket +
+
+ Documentation for this section has not yet been entered. +
+
+ sessions +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ID Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public string ID { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsBound Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool IsBound { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnClose Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected virtual void OnClose (object sender, WebSocketSharp.CloseEventArgs e)
+

Parameters

+
+
+
+ sender +
+
+ Documentation for this section has not yet been entered. +
+
+ e +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnError Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected virtual void OnError (object sender, WebSocketSharp.ErrorEventArgs e)
+

Parameters

+
+
+
+ sender +
+
+ Documentation for this section has not yet been entered. +
+
+ e +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnMessage Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected virtual void OnMessage (object sender, WebSocketSharp.MessageEventArgs e)
+

Parameters

+
+
+
+ sender +
+
+ Documentation for this section has not yet been entered. +
+
+ e +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnOpen Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected virtual void OnOpen (object sender, EventArgs e)
+

Parameters

+
+
+
+ sender +
+
+ Documentation for this section has not yet been entered. +
+
+ e +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Ping Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Ping ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Ping Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Ping (string message)
+

Parameters

+
+
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PingAround Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Dictionary<string, bool> PingAround ()
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PingAround Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Dictionary<string, bool> PingAround (string message)
+

Parameters

+
+
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PingTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool PingTo (string id)
+

Parameters

+
+
+
+ id +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

PingTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool PingTo (string id, string message)
+

Parameters

+
+
+
+ id +
+
+ Documentation for this section has not yet been entered. +
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Publish Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Publish (byte[] data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Publish Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Publish (string data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

QueryString Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Send Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Send (byte[] data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Send Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Send (string data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SendTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void SendTo (string id, byte[] data)
+

Parameters

+
+
+
+ id +
+
+ Documentation for this section has not yet been entered. +
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SendTo Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void SendTo (string id, string data)
+

Parameters

+
+
+
+ id +
+
+ Documentation for this section has not yet been entered. +
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sessions Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected SessionManager Sessions { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Start Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Start ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Stop (ushort code, string reason)
+

Parameters

+
+
+
+ code +
+
+ Documentation for this section has not yet been entered. +
+
+ reason +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+ +

Parameters

+
+
+
+ code +
+
+ Documentation for this section has not yet been entered. +
+
+ reason +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServiceHost`1.html b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServiceHost`1.html new file mode 100644 index 00000000..166cbf99 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/WebSocketServiceHost`1.html @@ -0,0 +1,1049 @@ + + + WebSocketSharp.Server.WebSocketServiceHost<T> + + + + + + + +

WebSocketServiceHost<T> Generic Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class WebSocketServiceHost<T> : WebSocketServerBase, IServiceHost
where T : WebSocketSharp.Server.WebSocketService, new()
+
+
+

Type Parameters

+
+
+
+ T +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + WebSocketServerBase. +

+

Public Constructors

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Address + + + + System.Net.IPAddress + . + Gets the local IP address on which to listen for incoming connection attempts. + (Inherited from WebSocketServerBase.)
[read-only]
+ + IsSecure + + + + bool + . + Gets a value indicating whether this server is secure. + (Inherited from WebSocketServerBase.)
[read-only]
+ + IsSelfHost + + + + bool + . + Gets a value indicating whether this server is self host. + (Inherited from WebSocketServerBase.)
[read-only]
+ + Port + + + + int + . + Gets the port on which to listen for incoming connection attempts. + (Inherited from WebSocketServerBase.)
+
+
+
+ + Sweeped + + + + bool + . Documentation for this section has not yet been entered.
[read-only]
+ + Uri + + + + Uri + . Documentation for this section has not yet been entered.
+
+
+

Protected Properties

+
+
+ + + + + + +
+
+
+
+ + BaseUri + + + + Uri + . + Gets or sets the WebSocket URL on which to listen for incoming connection attempts. + (Inherited from WebSocketServerBase.)
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + BindWebSocket + (WebSocketSharp.WebSocket)
Documentation for this section has not yet been entered.
+
+
+
+ + Broadcast + (string)
Documentation for this section has not yet been entered.
+
+
+
+ + Broadping + (string) : Dictionary<string, bool>
Documentation for this section has not yet been entered.
+
+
+
+ + Start + ()
+ Starts to receive the WebSocket connection requests. + (Inherited from WebSocketServerBase.)
+
override
+
+ + Stop + ()
Documentation for this section has not yet been entered.
+
+
+
+ + Stop + ()
+ Stops receiving the WebSocket connection requests. + (Inherited from WebSocketServerBase.)
+
+
+

Protected Methods

+
+
+ + + + + + + + + + + + + +
+
override
+
+ + AcceptWebSocket + (System.Net.Sockets.TcpClient)
Documentation for this section has not yet been entered.
+
abstract
+
+ + AcceptWebSocket + (System.Net.Sockets.TcpClient)
+ Accepts the WebSocket connection. + (Inherited from WebSocketServerBase.)
+
+
+
+ + Error + (string)
+ Occurs the WebSocketServerBase.OnError event with the specified message. + (Inherited from WebSocketServerBase.)
+
+
+

Public Events

+
+
+ + + + + + +
+
+
+
+ + OnError + + + Occurs when this server gets an error. + (Inherited from WebSocketServerBase.)
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (int port)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (string url)
+

Parameters

+
+
+
+ url +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (int port, bool secure)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ secure +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (int port, string absPath)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (int port, string absPath, bool secure)
+

Parameters

+
+
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+ secure +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (System.Net.IPAddress address, int port, string absPath)
+

Parameters

+
+
+
+ address +
+
+ Documentation for this section has not yet been entered. +
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocketServiceHost Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WebSocketServiceHost (System.Net.IPAddress address, int port, string absPath, bool secure)
+

Parameters

+
+
+
+ address +
+
+ Documentation for this section has not yet been entered. +
+
+ port +
+
+ Documentation for this section has not yet been entered. +
+
+ absPath +
+
+ Documentation for this section has not yet been entered. +
+
+ secure +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

AcceptWebSocket Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
protected override void AcceptWebSocket (System.Net.Sockets.TcpClient client)
+

Parameters

+
+
+
+ client +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

BindWebSocket Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void BindWebSocket (WebSocketSharp.WebSocket socket)
+

Parameters

+
+
+
+ socket +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadcast Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public void Broadcast (string data)
+

Parameters

+
+
+
+ data +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Broadping Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Dictionary<string, bool> Broadping (string message)
+

Parameters

+
+
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Returns

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Stop Method

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public override void Stop ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Sweeped Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public bool Sweeped { get; set; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Uri Property

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public Uri Uri { get; }
+

Value

+
+ Documentation for this section has not yet been entered. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp.Server
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp.Server/index.html b/websocket-sharp/doc/html/WebSocketSharp.Server/index.html new file mode 100644 index 00000000..a1b9953a --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp.Server/index.html @@ -0,0 +1,286 @@ + + + websocket-sharp: WebSocketSharp.Server + + + + + + +

WebSocketSharp.Server Namespace

+

+

+
+
+
+

Namespace

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ HttpServer + + Documentation for this section has not yet been entered. +
+ IServiceHost + + Exposes the methods and property for the WebSocket service host. +
+ ResponseEventArgs + + Documentation for this section has not yet been entered. +
+ ServiceManager + + Documentation for this section has not yet been entered. +
+ SessionManager + + Documentation for this section has not yet been entered. +
+ WebSocketServer + + Documentation for this section has not yet been entered. +
+ WebSocketServerBase + + Provides the basic functions of the server that receives the WebSocket connection requests. +
+ WebSocketService + + Documentation for this section has not yet been entered. +
+ WebSocketServiceHost<T> + + Documentation for this section has not yet been entered. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/ByteOrder.html b/websocket-sharp/doc/html/WebSocketSharp/ByteOrder.html new file mode 100644 index 00000000..854ce4c8 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/ByteOrder.html @@ -0,0 +1,256 @@ + + + WebSocketSharp.ByteOrder + + + + + + + +

ByteOrder Enum

+

+ Contains the values that indicate whether the byte order is a Little-endian or Big-endian. +

+
+

Syntax

+
public enum ByteOrder
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Members

+
+ + + + + + + + + + + + + +
Member NameDescription
+ BIG + + Indicates a Big-endian. +
+ LITTLE + + Indicates a Little-endian. +
+
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/CloseEventArgs.html b/websocket-sharp/doc/html/WebSocketSharp/CloseEventArgs.html new file mode 100644 index 00000000..1e63e7d2 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/CloseEventArgs.html @@ -0,0 +1,423 @@ + + + WebSocketSharp.CloseEventArgs + + + + + + + +

CloseEventArgs Class

+

+ Contains the event data associated with a WebSocket.OnClose event. +

+
+

Syntax

+
public class CloseEventArgs : MessageEventArgs
+
+
+

Remarks

+
+ The WebSocket.OnClose event occurs when the WebSocket receives a close control frame or + the WebSocket.Close method is called. If you want to get the reason for closure, you should access the CloseEventArgs.Code or + CloseEventArgs.Reason properties. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + MessageEventArgs. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Code + + + + ushort + . + Gets the status code for closure. +
[read-only]
+ + Data + + + + string + . + Gets the received data as a string. + (Inherited from MessageEventArgs.)
[read-only]
+ + RawData + + + + byte[]. + Gets the received data as an array of byte. + (Inherited from MessageEventArgs.)
[read-only]
+ + Reason + + + + string + . + Gets the reason for closure. +
[read-only]
+ + Type + + + + WebSocketSharp.Frame.Opcode + . + Gets the type of received data. + (Inherited from MessageEventArgs.)
[read-only]
+ + WasClean + + + + bool + . + Indicates whether the connection closed cleanly or not. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

Code Property

+
+

+ Gets the status code for closure. +

+

Syntax

+
public ushort Code { get; }
+

Value

+
+ A ushort that contains a status code for closure. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Reason Property

+
+

+ Gets the reason for closure. +

+

Syntax

+
public string Reason { get; }
+

Value

+
+ A string that contains a reason for closure. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WasClean Property

+
+

+ Indicates whether the connection closed cleanly or not. +

+

Syntax

+
public bool WasClean { get; }
+

Value

+
+ true if the connection closed cleanly; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/ErrorEventArgs.html b/websocket-sharp/doc/html/WebSocketSharp/ErrorEventArgs.html new file mode 100644 index 00000000..2ccf6fd9 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/ErrorEventArgs.html @@ -0,0 +1,313 @@ + + + WebSocketSharp.ErrorEventArgs + + + + + + + +

ErrorEventArgs Class

+

+ Contains the event data associated with a error event. +

+
+

Syntax

+
public class ErrorEventArgs : EventArgs
+
+
+

Remarks

+
+ The error event occurs when this event sender gets an error. + If you want to get the error message, you should access the ErrorEventArgs.Message property. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + EventArgs. +

+

Public Properties

+
+
+ + + + + + +
[read-only]
+ + Message + + + + string + . + Gets the error message. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

Message Property

+
+

+ Gets the error message. +

+

Syntax

+
public string Message { get; }
+

Value

+
+ A string that contains a error message. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/Ext.html b/websocket-sharp/doc/html/WebSocketSharp/Ext.html new file mode 100644 index 00000000..3a0d0e57 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/Ext.html @@ -0,0 +1,2410 @@ + + + WebSocketSharp.Ext + + + + + + + +

Ext Class

+

+ Provides a set of static methods for the websocket-sharp. +

+
+

Syntax

+
public static class Ext
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
static
+
+ + AcceptWebSocket + (this System.Net.Sockets.TcpClient, bool) : WebSocketSharp.Net.Sockets.TcpListenerWebSocketContext
+ Accept a WebSocket connection by the System.Net.Sockets.TcpListener. +
+
static
+
+ + Emit + (this EventHandler, object, EventArgs)
+ Emit the specified EventHandler delegate if is not null. +
+
static
+
+ + Emit<TEventArgs> + (this EventHandler<TEventArgs>, object, TEventArgs)
+ Emit the specified EventHandler<TEventArgs> delegate if is not null. +
+
static
+
+ + EqualsAndSaveTo + (this int, char, List<byte>) : bool
+ Determines whether the specified int equals the specified char as byte. + And save this specified int as byte to the specified List<byte>. +
+
static
+
+ + Exists + (this System.Collections.Specialized.NameValueCollection, string) : bool
+ Determines whether the entry with the specified key exists in the specified System.Collections.Specialized.NameValueCollection. +
+
static
+
+ + Exists + (this System.Collections.Specialized.NameValueCollection, string, string) : bool
+ Determines whether the entry with the specified both key and value exists in the specified System.Collections.Specialized.NameValueCollection. +
+
static
+
+ + GetAbsolutePath + (this Uri) : string
+ Gets the absolute path from the specified Uri. +
+
static
+
+ + GetDescription + (this WebSocketSharp.Net.HttpStatusCode) : string
+ Gets the description of the HTTP status code using the specified code. +
+
static
+
+ + GetName + (this string, string) : string
+ Gets the name from the specified string that contains a pair of name and value are separated by a separator string. +
+
static
+
+ + GetNameAndValue + (this string, string) : KeyValuePair<string, string>
+ Gets the name and value from the specified string that contains a pair of name and value are separated by a separator string. +
+
static
+
+ + GetStatusDescription + (this int) : string
+ Gets the description of the HTTP status code using the specified code. +
+
static
+
+ + GetValue + (this string, string) : string
+ Gets the value from the specified string that contains a pair of name and value are separated by a separator string. +
+
static
+
+ + IsEmpty + (this string) : bool
+ Determines whether the specified string is a string.Empty. +
+
static
+
+ + IsHostOrder + (this ByteOrder) : bool
+ Determines whether the specified WebSocketSharp.ByteOrder is host (this computer architecture) byte order. +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
static
+
+ + IsNullOrEmpty + (this string) : bool
+ Determines whether the specified string is null or string.Empty. +
+
static
+
+ + IsPredefinedScheme + (this string) : bool
+ Determines whether the specified string is predefined scheme. +
+
static
+
+ + IsValidAbsolutePath + (this string, out string) : bool
+ Determines whether the specified string is valid absolute path. +
+
static
+
+ + MaybeUri + (this string) : bool
+ Determines whether the specified string is a URI string. +
+
static
+
+ + NotEqual + (this string, string, bool) : bool
+ Determines whether two specified string objects don't have the same value. +
+
static
+
+ + ReadBytes + (this System.IO.Stream, int) : byte[]
+ Reads a block of bytes from the specified stream and returns the read data in an array of byte. +
+
static
+
+ + ReadBytes + (this System.IO.Stream, long) : byte[]
+ Reads a block of bytes from the specified stream and returns the read data in an array of byte. +
+
static
+
+ + ReadBytes + (this System.IO.Stream, long, int) : byte[]
+ Reads a block of bytes from the specified stream and returns the read data in an array of byte. +
+
static
+
+ + SubArray<T> + (this T[], int, int) : T[]
+ Retrieves a sub-array from the specified array. A sub-array starts at the specified element position. +
+
static
+
+ + Times + (this int, Action)
+ Executes the specified Action delegate n times. +
+
static
+
+ + Times + (this int, Action<ulong>)
+ Executes the specified Action<ulong> delegate n times. +
+
static
+
+ + Times + (this long, Action)
+ Executes the specified Action delegate n times. +
+
static
+
+ + Times + (this long, Action<ulong>)
+ Executes the specified Action<ulong> delegate n times. +
+
static
+
+ + Times + (this uint, Action)
+ Executes the specified Action delegate n times. +
+
static
+
+ + Times + (this uint, Action<ulong>)
+ Executes the specified Action<ulong> delegate n times. +
+
static
+
+ + Times + (this ulong, Action)
+ Executes the specified Action delegate n times. +
+
static
+
+ + Times + (this ulong, Action<ulong>)
+ Executes the specified Action<ulong> delegate n times. +
+
static
+
+ + To<T> + (this byte[], ByteOrder) : T
+ Converts the specified array of byte to the specified type data. +
+
static
+
+ + ToBytes<T> + (this T, ByteOrder) : byte[]
+ Converts the specified data to an array of byte. +
+
static
+
+ + ToHostOrder + (this byte[], ByteOrder) : byte[]
+ Converts the order of the specified array of byte to the host byte order. +
+
static
+
+ + ToString<T> + (this T[], string) : string
+ Converts the specified array to a string concatenated the specified separator string + between each element of this array. +
+
static
+
+ + ToUri + (this string) : Uri
+ Converts the specified string to a Uri object. +
+
static
+
+ + TryCreateWebSocketUri + (this string, out Uri, out string) : bool
+ Tries to create a new WebSocket Uri using the specified uriString. +
+
static
+
+ + UrlDecode + (this string) : string
+ URL-decodes the specified string. +
+
static
+
+ + UrlEncode + (this string) : string
+ URL-encodes the specified string. +
+
static
+
+ + WriteContent + (this WebSocketSharp.Net.HttpListenerResponse, byte[])
+ Writes the specified content data using the specified WebSocketSharp.Net.HttpListenerResponse. +
+
+
+
+
+
+

Member Details

+
+

AcceptWebSocket Method

+
+

+ Accept a WebSocket connection by the System.Net.Sockets.TcpListener. +

+

Syntax

+ +

Parameters

+
+
+
+ client +
+
+ A System.Net.Sockets.TcpClient that contains a TCP connection to accept a WebSocket connection from. +
+
+ secure +
+
+ A bool that indicates a secure connection or not. (true indicates a secure connection.) +
+
+
+

Returns

+
+ A WebSocketSharp.Net.Sockets.TcpListenerWebSocketContext that contains a WebSocket connection. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentNullException + + Is thrown when the client parameter passed to a method is invalid because it is null. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Emit Method

+
+

+ Emit the specified EventHandler delegate if is not null. +

+

Syntax

+
public static void Emit (this EventHandler eventHandler, object sender, EventArgs e)
+

Parameters

+
+
+
+ eventHandler +
+
+ An EventHandler to emit. +
+
+ sender +
+
+ An object that emits the eventHandler. +
+
+ e +
+
+ An EventArgs that contains no event data. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Emit<TEventArgs> Generic Method

+
+

+ Emit the specified EventHandler<TEventArgs> delegate if is not null. +

+

Syntax

+
public static void Emit<TEventArgs> (this EventHandler<TEventArgs> eventHandler, object sender, TEventArgs e)
where TEventArgs : EventArgs
+

Type Parameters

+
+
+
+ TEventArgs +
+
+ The type of the event data generated by the event. +
+
+
+

Parameters

+
+
+
+ eventHandler +
+
+ An EventHandler<TEventArgs> to emit. +
+
+ sender +
+
+ An object that emits the eventHandler. +
+
+ e +
+
+ A TEventArgs that contains the event data. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

EqualsAndSaveTo Method

+
+

+ Determines whether the specified int equals the specified char as byte. + And save this specified int as byte to the specified List<byte>. +

+

Syntax

+
public static bool EqualsAndSaveTo (this int value, char c, List<byte> dest)
+

Parameters

+
+
+
+ value +
+
+ An int to compare. +
+
+ c +
+
+ A char to compare. +
+
+ dest +
+
+ A List<byte> to save the value as byte. +
+
+
+

Returns

+
+ true if the value parameter equals the c parameter as byte; otherwise, false. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentOutOfRangeException + + Is thrown when the value parameter passed to a method is invalid because it is outside the allowable range of values as byte. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Exists Method

+
+

+ Determines whether the entry with the specified key exists in the specified System.Collections.Specialized.NameValueCollection. +

+

Syntax

+
public static bool Exists (this System.Collections.Specialized.NameValueCollection collection, string name)
+

Parameters

+
+
+
+ collection +
+
+ A System.Collections.Specialized.NameValueCollection that contains the entries. +
+
+ name +
+
+ A string that contains the key of the entry to find. +
+
+
+

Returns

+
+ true if the entry with the name exists in the collection; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Exists Method

+
+

+ Determines whether the entry with the specified both key and value exists in the specified System.Collections.Specialized.NameValueCollection. +

+

Syntax

+
public static bool Exists (this System.Collections.Specialized.NameValueCollection collection, string name, string value)
+

Parameters

+
+
+
+ collection +
+
+ A System.Collections.Specialized.NameValueCollection that contains the entries. +
+
+ name +
+
+ A string that contains the key of the entry to find. +
+
+ value +
+
+ A string that contains the value of the entry to find. +
+
+
+

Returns

+
+ true if the entry with the both name and value exists in the collection; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetAbsolutePath Method

+
+

+ Gets the absolute path from the specified Uri. +

+

Syntax

+
public static string GetAbsolutePath (this Uri uri)
+

Parameters

+
+
+
+ uri +
+
+ A Uri that contains the URI to get the absolute path from. +
+
+
+

Returns

+
+ A string that contains the absolute path if got successfully; otherwise, null. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetDescription Method

+
+

+ Gets the description of the HTTP status code using the specified code. +

+

Syntax

+
public static string GetDescription (this WebSocketSharp.Net.HttpStatusCode code)
+

Parameters

+
+
+
+ code +
+
+ One of WebSocketSharp.Net.HttpStatusCode values that contains the HTTP status code. +
+
+
+

Returns

+
+ A string that contains the description of the code. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetName Method

+
+

+ Gets the name from the specified string that contains a pair of name and value are separated by a separator string. +

+

Syntax

+
public static string GetName (this string nameAndValue, string separator)
+

Parameters

+
+
+
+ nameAndValue +
+
+ A string that contains a pair of name and value are separated by a separator string. +
+
+ separator +
+
+ A string that contains a separator string. +
+
+
+

Returns

+
+ A string that contains the name if any; otherwise, null. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetNameAndValue Method

+
+

+ Gets the name and value from the specified string that contains a pair of name and value are separated by a separator string. +

+

Syntax

+
public static KeyValuePair<string, string> GetNameAndValue (this string nameAndValue, string separator)
+

Parameters

+
+
+
+ nameAndValue +
+
+ A string that contains a pair of name and value are separated by a separator string. +
+
+ separator +
+
+ A string that contains a separator string. +
+
+
+

Returns

+
+ A KeyValuePair<string, string> that contains the name and value if any. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetStatusDescription Method

+
+

+ Gets the description of the HTTP status code using the specified code. +

+

Syntax

+
public static string GetStatusDescription (this int code)
+

Parameters

+
+
+
+ code +
+
+ An int that contains the HTTP status code. +
+
+
+

Returns

+
+ A string that contains the description of the code. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

GetValue Method

+
+

+ Gets the value from the specified string that contains a pair of name and value are separated by a separator string. +

+

Syntax

+
public static string GetValue (this string nameAndValue, string separator)
+

Parameters

+
+
+
+ nameAndValue +
+
+ A string that contains a pair of name and value are separated by a separator string. +
+
+ separator +
+
+ A string that contains a separator string. +
+
+
+

Returns

+
+ A string that contains the value if any; otherwise, null. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsEmpty Method

+
+

+ Determines whether the specified string is a string.Empty. +

+

Syntax

+
public static bool IsEmpty (this string value)
+

Parameters

+
+
+
+ value +
+
+ A string to test. +
+
+
+

Returns

+
+ true if the value parameter is a string.Empty; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsHostOrder Method

+
+

+ Determines whether the specified WebSocketSharp.ByteOrder is host (this computer architecture) byte order. +

+

Syntax

+
public static bool IsHostOrder (this ByteOrder order)
+

Parameters

+
+
+
+ order +
+
+ A WebSocketSharp.ByteOrder to test. +
+
+
+

Returns

+
+ true if the order parameter is host byte order; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsNull<T> Generic Method

+
+

+ Determines whether the specified object is null. +

+

Syntax

+
public static bool IsNull<T> (this T obj)
where T : class
+

Type Parameters

+
+
+
+ T +
+
+ The type of the obj parameter. +
+
+
+

Parameters

+
+
+
+ obj +
+
+ A class to test. +
+
+
+

Returns

+
+ true if the obj parameter is null; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsNullDo<T> Generic Method

+
+

+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +

+

Syntax

+
public static bool IsNullDo<T> (this T obj, Action act)
where T : class
+

Type Parameters

+
+
+
+ T +
+
+ The type of the obj parameter. +
+
+
+

Parameters

+
+
+
+ obj +
+
+ A class to test. +
+
+ act +
+
+ An Action delegate that contains the method(s) called if the obj is null. +
+
+
+

Returns

+
+ true if the obj parameter is null; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsNullOrEmpty Method

+
+

+ Determines whether the specified string is null or string.Empty. +

+

Syntax

+
public static bool IsNullOrEmpty (this string value)
+

Parameters

+
+
+
+ value +
+
+ A string to test. +
+
+
+

Returns

+
+ true if the value parameter is null or string.Empty; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsPredefinedScheme Method

+
+

+ Determines whether the specified string is predefined scheme. +

+

Syntax

+
public static bool IsPredefinedScheme (this string scheme)
+

Parameters

+
+
+
+ scheme +
+
+ A string to test. +
+
+
+

Returns

+
+ true if the scheme parameter is the predefined scheme; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsValidAbsolutePath Method

+
+

+ Determines whether the specified string is valid absolute path. +

+

Syntax

+
public static bool IsValidAbsolutePath (this string absPath, out string message)
+

Parameters

+
+
+
+ absPath +
+
+ A string to test. +
+
+ message +
+
+ A string that receives a message if the absPath is invalid. +
+
+
+

Returns

+
+ true if the absPath parameter is valid absolute path; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

MaybeUri Method

+
+

+ Determines whether the specified string is a URI string. +

+

Syntax

+
public static bool MaybeUri (this string uriString)
+

Parameters

+
+
+
+ uriString +
+
+ A string to test. +
+
+
+

Returns

+
+ true if the uriString parameter is maybe a URI string; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

NotEqual Method

+
+

+ Determines whether two specified string objects don't have the same value. +

+

Syntax

+
public static bool NotEqual (this string expected, string actual, bool ignoreCase)
+

Parameters

+
+
+
+ expected +
+
+ The first string to compare. +
+
+ actual +
+
+ The second string to compare. +
+
+ ignoreCase +
+
+ A bool that indicates a case-sensitive or insensitive comparison. (true indicates a case-insensitive comparison.) +
+
+
+

Returns

+
+ true if the value of expected parameter isn't the same as the value of actual parameter; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ReadBytes Method

+
+

+ Reads a block of bytes from the specified stream and returns the read data in an array of byte. +

+

Syntax

+
public static byte[] ReadBytes (this System.IO.Stream stream, int length)
+

Parameters

+
+
+
+ stream +
+
+ A System.IO.Stream that contains the data to read. +
+
+ length +
+
+ An int that contains the number of bytes to read. +
+
+
+

Returns

+
+ An array of byte that receives the read data. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ReadBytes Method

+
+

+ Reads a block of bytes from the specified stream and returns the read data in an array of byte. +

+

Syntax

+
public static byte[] ReadBytes (this System.IO.Stream stream, long length)
+

Parameters

+
+
+
+ stream +
+
+ A System.IO.Stream that contains the data to read. +
+
+ length +
+
+ A long that contains the number of bytes to read. +
+
+
+

Returns

+
+ An array of byte that receives the read data. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ReadBytes Method

+
+

+ Reads a block of bytes from the specified stream and returns the read data in an array of byte. +

+

Syntax

+
public static byte[] ReadBytes (this System.IO.Stream stream, long length, int bufferLength)
+

Parameters

+
+
+
+ stream +
+
+ A System.IO.Stream that contains the data to read. +
+
+ length +
+
+ A long that contains the number of bytes to read. +
+
+ bufferLength +
+
+ An int that contains the buffer size in bytes of each internal read. +
+
+
+

Returns

+
+ An array of byte that receives the read data. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SubArray<T> Generic Method

+
+

+ Retrieves a sub-array from the specified array. A sub-array starts at the specified element position. +

+

Syntax

+
public static T[] SubArray<T> (this T[] array, int startIndex, int length)
+

Type Parameters

+
+
+
+ T +
+
+ The type of elements in the array. +
+
+
+

Parameters

+
+
+
+ array +
+
+ An array of T that contains the data to retrieve a sub-array. +
+
+ startIndex +
+
+ An int that contains the zero-based starting position of a sub-array in the array. +
+
+ length +
+
+ An int that contains the number of elements to retrieve a sub-array. +
+
+
+

Returns

+
+ An array of T that receives a sub-array, or an empty array of T if any problems with the parameters. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action delegate n times. +

+

Syntax

+
public static void Times (this int n, Action act)
+

Parameters

+
+
+
+ n +
+
+ An int that contains the number of times to execute. +
+
+ act +
+
+ An Action delegate that contains the method(s) to execute. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action<ulong> delegate n times. +

+

Syntax

+
public static void Times (this int n, Action<ulong> act)
+

Parameters

+
+
+
+ n +
+
+ An int that contains the number of times to execute. +
+
+ act +
+
+ An Action<ulong> delegate that contains the method(s) to execute. + A ulong parameter to pass to this method(s) contains the zero-based count of iteration. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action delegate n times. +

+

Syntax

+
public static void Times (this long n, Action act)
+

Parameters

+
+
+
+ n +
+
+ A long that contains the number of times to execute. +
+
+ act +
+
+ An Action delegate that contains the method(s) to execute. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action<ulong> delegate n times. +

+

Syntax

+
public static void Times (this long n, Action<ulong> act)
+

Parameters

+
+
+
+ n +
+
+ A long that contains the number of times to execute. +
+
+ act +
+
+ An Action<ulong> delegate that contains the method(s) to execute. + A ulong parameter to pass to this method(s) contains the zero-based count of iteration. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action delegate n times. +

+

Syntax

+
public static void Times (this uint n, Action act)
+

Parameters

+
+
+
+ n +
+
+ A uint that contains the number of times to execute. +
+
+ act +
+
+ An Action delegate that contains the method(s) to execute. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action<ulong> delegate n times. +

+

Syntax

+
public static void Times (this uint n, Action<ulong> act)
+

Parameters

+
+
+
+ n +
+
+ A uint that contains the number of times to execute. +
+
+ act +
+
+ An Action<ulong> delegate that contains the method(s) to execute. + A ulong parameter to pass to this method(s) contains the zero-based count of iteration. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action delegate n times. +

+

Syntax

+
public static void Times (this ulong n, Action act)
+

Parameters

+
+
+
+ n +
+
+ A ulong that contains the number of times to execute. +
+
+ act +
+
+ An Action delegate that contains the method(s) to execute. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Times Method

+
+

+ Executes the specified Action<ulong> delegate n times. +

+

Syntax

+
public static void Times (this ulong n, Action<ulong> act)
+

Parameters

+
+
+
+ n +
+
+ A ulong that contains the number of times to execute. +
+
+ act +
+
+ An Action<ulong> delegate that contains the method(s) to execute. + A ulong parameter to pass to this method(s) contains the zero-based count of iteration. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

To<T> Generic Method

+
+

+ Converts the specified array of byte to the specified type data. +

+

Syntax

+
public static T To<T> (this byte[] src, ByteOrder srcOrder)
where T : struct
+

Type Parameters

+
+
+
+ T +
+
+ The type of the return value. The T must be a value type. +
+
+
+

Parameters

+
+
+
+ src +
+
+ An array of byte to convert. +
+
+ srcOrder +
+
+ A WebSocketSharp.ByteOrder that indicates the byte order of the src. +
+
+
+

Returns

+
+ A T converted from the src, or a default value of T + if the src is an empty array of byte + or if the types of T aren't the bool, char, double, + float, int, long, short, + uint, ulong, ushort. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentNullException + + Is thrown when the src parameter passed to a method is invalid because it is null. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToBytes<T> Generic Method

+
+

+ Converts the specified data to an array of byte. +

+

Syntax

+
public static byte[] ToBytes<T> (this T value, ByteOrder order)
where T : struct
+

Type Parameters

+
+
+
+ T +
+
+ The type of the value. The T must be a value type. +
+
+
+

Parameters

+
+
+
+ value +
+
+ A T to convert. +
+
+ order +
+
+ A WebSocketSharp.ByteOrder that indicates the byte order of the return. +
+
+
+

Returns

+
+ An array of byte converted from the value. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToHostOrder Method

+
+

+ Converts the order of the specified array of byte to the host byte order. +

+

Syntax

+
public static byte[] ToHostOrder (this byte[] src, ByteOrder srcOrder)
+

Parameters

+
+
+
+ src +
+
+ An array of byte to convert. +
+
+ srcOrder +
+
+ A WebSocketSharp.ByteOrder that indicates the byte order of the src. +
+
+
+

Returns

+
+ An array of byte converted from the src. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentNullException + + Is thrown when the src parameter passed to a method is invalid because it is null. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToString<T> Generic Method

+
+

+ Converts the specified array to a string concatenated the specified separator string + between each element of this array. +

+

Syntax

+
public static string ToString<T> (this T[] array, string separator)
+

Type Parameters

+
+
+
+ T +
+
+ The type of elements in the array. +
+
+
+

Parameters

+
+
+
+ array +
+
+ An array of T to convert. +
+
+ separator +
+
+ A string that contains a separator string. +
+
+
+

Returns

+
+ A string converted from the array parameter, or a string.Empty + if the length of the array is zero. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentNullException + + Is thrown when the array parameter passed to a method is invalid because it is null. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ToUri Method

+
+

+ Converts the specified string to a Uri object. +

+

Syntax

+
public static Uri ToUri (this string uriString)
+

Parameters

+
+
+
+ uriString +
+
+ A string to convert. +
+
+
+

Returns

+
+ A Uri converted from the uriString parameter, or null + if the uriString is null or string.Empty. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

TryCreateWebSocketUri Method

+
+

+ Tries to create a new WebSocket Uri using the specified uriString. +

+

Syntax

+
public static bool TryCreateWebSocketUri (this string uriString, out Uri result, out string message)
+

Parameters

+
+
+
+ uriString +
+
+ A string that contains a WebSocket URI. +
+
+ result +
+
+ When this method returns, contains a created WebSocket Uri if the uriString parameter is valid WebSocket URI; otherwise, null. +
+
+ message +
+
+ When this method returns, contains a error message string if the uriString parameter is invalid WebSocket URI; otherwise, String.Empty. +
+
+
+

Returns

+
+ true if the WebSocket Uri was successfully created; otherwise, false. +
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentNullException + + Is thrown when the uriString parameter passed to a method is invalid because it is null. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UrlDecode Method

+
+

+ URL-decodes the specified string. +

+

Syntax

+
public static string UrlDecode (this string s)
+

Parameters

+
+
+
+ s +
+
+ A string to decode. +
+
+
+

Returns

+
+ A string that receives a decoded string, or the s parameter + if the s is null or string.Empty. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UrlEncode Method

+
+

+ URL-encodes the specified string. +

+

Syntax

+
public static string UrlEncode (this string s)
+

Parameters

+
+
+
+ s +
+
+ A string to encode. +
+
+
+

Returns

+
+ A string that receives a encoded string, or the s parameter + if the s is null or string.Empty. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WriteContent Method

+
+

+ Writes the specified content data using the specified WebSocketSharp.Net.HttpListenerResponse. +

+

Syntax

+
public static void WriteContent (this WebSocketSharp.Net.HttpListenerResponse response, byte[] content)
+

Parameters

+
+
+
+ response +
+
+ A WebSocketSharp.Net.HttpListenerResponse that contains a network stream to write a content data. +
+
+ content +
+
+ An array of byte that contains a content data to write. +
+
+
+

Exceptions

+
+ + + + + + + + + +
TypeReason
+ ArgumentNullException + + Is thrown when the response parameter passed to a method is invalid because it is null. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/MessageEventArgs.html b/websocket-sharp/doc/html/WebSocketSharp/MessageEventArgs.html new file mode 100644 index 00000000..0f5a18b0 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/MessageEventArgs.html @@ -0,0 +1,381 @@ + + + WebSocketSharp.MessageEventArgs + + + + + + + +

MessageEventArgs Class

+

+ Contains the event data associated with a WebSocket.OnMessage event. +

+
+

Syntax

+
public class MessageEventArgs : EventArgs
+
+
+

Remarks

+
+ The WebSocket.OnMessage event occurs when the WebSocket receives a text or binary data frame. + If you want to get the received data, you should access the MessageEventArgs.Data or + MessageEventArgs.RawData properties. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + EventArgs. +

+

Public Properties

+
+
+ + + + + + + + + + + + + + + + +
[read-only]
+ + Data + + + + string + . + Gets the received data as a string. +
[read-only]
+ + RawData + + + + byte[]. + Gets the received data as an array of byte. +
[read-only]
+ + Type + + + + WebSocketSharp.Frame.Opcode + . + Gets the type of received data. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

Data Property

+
+

+ Gets the received data as a string. +

+

Syntax

+
public string Data { get; }
+

Value

+
+ A string that contains a received data. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

RawData Property

+
+

+ Gets the received data as an array of byte. +

+

Syntax

+
public byte[] RawData { get; }
+

Value

+
+ An array of byte that contains a received data. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Type Property

+
+

+ Gets the type of received data. +

+

Syntax

+
public WebSocketSharp.Frame.Opcode Type { get; }
+

Value

+
+ One of the WebSocketSharp.Frame.Opcode that indicates the type of received data. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/WebSocket.html b/websocket-sharp/doc/html/WebSocketSharp/WebSocket.html new file mode 100644 index 00000000..482e7e85 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/WebSocket.html @@ -0,0 +1,1445 @@ + + + WebSocketSharp.WebSocket + + + + + + + +

WebSocket Class

+

+ Implements the WebSocket interface. +

+
+

Syntax

+
public class WebSocket : IDisposable
+
+
+

Remarks

+
+ The WebSocket class provides methods and properties for two-way communication using the WebSocket protocol (RFC 6455). +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + object. +

+

Public Constructors

+
+
+ + + + + + + + + + + +
+
+
+
+
+ + WebSocket + (string, params string[])
+
+ Initializes a new instance of the WebSocketSharp.WebSocket class with the specified WebSocket URL and subprotocols. +
+
+
+
+ + + Initializes a new instance of the WebSocketSharp.WebSocket class with the specified WebSocket URL, OnOpen, OnMessage, OnError, OnClose event handlers and subprotocols. +
+
+
+

Public Properties

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[read-only]
+ + Extensions + + + + string + . + Gets the extensions selected by the server. +
[read-only]
+ + IsAlive + + + + bool + . + Gets a value indicating whether a connection is alive. +
[read-only]
+ + IsSecure + + + + bool + . + Gets a value indicating whether a connection is secure. +
[read-only]
+ + Protocol + + + + string + . + Gets the subprotocol selected by the server. +
[read-only]
+ + ReadyState + + + + WsState + . + Gets the state of the connection. +
[read-only]
+ + UnsentBuffer + + + + byte[]. + Gets the buffer that contains unsent WebSocket frames. +
[read-only]
+ + UnsentCount + + + + uint + . + Gets the count of unsent WebSocket frames. +
+
+
+
+ + Url + + + + Uri + . + Gets or sets the WebSocket URL. +
+
+
+

Public Methods

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + Close + ()
+ Closes the connection and releases all associated resources after sends a Close control frame. +
+
+
+
+ + Close + (ushort)
+ Closes the connection and releases all associated resources after sends a Close control frame. +
+
+
+
+ + Close + (WebSocketSharp.Frame.CloseStatusCode)
+ Closes the connection and releases all associated resources after sends a Close control frame. +
+
+
+
+ + Close + (ushort, string)
+ Closes the connection and releases all associated resources after sends a Close control frame. +
+
+
+
+ + Close + (WebSocketSharp.Frame.CloseStatusCode, string)
+ Closes the connection and releases all associated resources after sends a Close control frame. +
+
+
+
+ + Connect + ()
+ Establishes a connection. +
+
+
+
+ + Dispose + ()
+ Closes the connection and releases all associated resources after sends a Close control frame. +
+
+
+
+ + Ping + () : bool
+ Sends a Ping frame using the connection. +
+
+
+
+ + Ping + (string) : bool
+ Sends a Ping frame with a message using the connection. +
+
+
+
+ + Send + (byte[])
+ Sends a binary data using the connection. +
+
+
+
+ + Send + (System.IO.FileInfo)
+ Sends a binary data using the connection. +
+
+
+
+ + Send + (string)
+ Sends a text data using the connection. +
+
+
+
+ + SendAsync + (byte[], Action)
+ Sends a binary data asynchronously using the connection. +
+
+
+
+ + SendAsync + (System.IO.FileInfo, Action)
+ Sends a binary data asynchronously using the connection. +
+
+
+
+ + SendAsync + (string, Action)
+ Sends a text data asynchronously using the connection. +
+
+
+

Public Events

+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + OnClose + + + Occurs when the WebSocket receives a Close frame or the Close method is called. +
+
+
+
+ + OnError + + + Occurs when the WebSocket gets an error. +
+
+
+
+ + OnMessage + + + Occurs when the WebSocket receives a data frame. +
+
+
+
+ + OnOpen + + + Occurs when the WebSocket connection has been established. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WebSocket Constructor

+
+

+ Initializes a new instance of the WebSocketSharp.WebSocket class with the specified WebSocket URL and subprotocols. +

+

Syntax

+
public WebSocket (string url, params string[] protocols)
+

Parameters

+
+
+
+ url +
+
+ A string that contains the WebSocket URL. +
+
+ protocols +
+
+ An array of string that contains the WebSocket subprotocols if any. +
+
+
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + url is null. +
+ ArgumentException + + url is not valid WebSocket URL. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WebSocket Constructor

+
+

+ Initializes a new instance of the WebSocketSharp.WebSocket class with the specified WebSocket URL, OnOpen, OnMessage, OnError, OnClose event handlers and subprotocols. +

+

Syntax

+
public WebSocket (string url, EventHandler onOpen, EventHandler<MessageEventArgs> onMessage, EventHandler<ErrorEventArgs> onError, EventHandler<CloseEventArgs> onClose, params string[] protocols)
+

Parameters

+
+
+
+ url +
+
+ A string that contains the WebSocket URL. +
+
+ onOpen +
+
+ An OnOpen event handler. +
+
+ onMessage +
+
+ An OnMessage event handler. +
+
+ onError +
+
+ An OnError event handler. +
+
+ onClose +
+
+ An OnClose event handler. +
+
+ protocols +
+
+ An array of string that contains the WebSocket subprotocols if any. +
+
+
+

Exceptions

+
+ + + + + + + + + + + + + +
TypeReason
+ ArgumentNullException + + url is null. +
+ ArgumentException + + url is not valid WebSocket URL. +
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Closes the connection and releases all associated resources after sends a Close control frame. +

+

Syntax

+
public void Close ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Closes the connection and releases all associated resources after sends a Close control frame. +

+

Syntax

+
public void Close (ushort code)
+

Parameters

+
+
+
+ code +
+
+ A ushort that contains a status code indicating a reason for closure. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Closes the connection and releases all associated resources after sends a Close control frame. +

+

Syntax

+ +

Parameters

+
+
+
+ code +
+
+ A WebSocketSharp.Frame.CloseStatusCode that contains a status code indicating a reason for closure. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Closes the connection and releases all associated resources after sends a Close control frame. +

+

Syntax

+
public void Close (ushort code, string reason)
+

Parameters

+
+
+
+ code +
+
+ A ushort that contains a status code indicating a reason for closure. +
+
+ reason +
+
+ A string that contains a reason for closure. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Close Method

+
+

+ Closes the connection and releases all associated resources after sends a Close control frame. +

+

Syntax

+ +

Parameters

+
+
+
+ code +
+
+ A WebSocketSharp.Frame.CloseStatusCode that contains a status code indicating a reason for closure. +
+
+ reason +
+
+ A string that contains a reason for closure. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Connect Method

+
+

+ Establishes a connection. +

+

Syntax

+
public void Connect ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Dispose Method

+
+

+ Closes the connection and releases all associated resources after sends a Close control frame. +

+

Syntax

+
public void Dispose ()
+

Remarks

+
+ Call WebSocket.Dispose when you are finished using the WebSocketSharp.WebSocket. The + WebSocket.Dispose method leaves the WebSocketSharp.WebSocket in an unusable state. After + calling WebSocket.Dispose, you must release all references to the WebSocketSharp.WebSocket so + the garbage collector can reclaim the memory that the WebSocketSharp.WebSocket was occupying. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Extensions Property

+
+

+ Gets the extensions selected by the server. +

+

Syntax

+
public string Extensions { get; }
+

Value

+
+ A string that contains the extensions if any. By default, String.Empty. (Currently this will only ever be the String.Empty.) +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsAlive Property

+
+

+ Gets a value indicating whether a connection is alive. +

+

Syntax

+
public bool IsAlive { get; }
+

Value

+
+ true if the connection is alive; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

IsSecure Property

+
+

+ Gets a value indicating whether a connection is secure. +

+

Syntax

+
public bool IsSecure { get; }
+

Value

+
+ true if the connection is secure; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnClose Event

+
+

+ Occurs when the WebSocket receives a Close frame or the Close method is called. +

+

Syntax

+
public event EventHandler<CloseEventArgs> OnClose
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnError Event

+
+

+ Occurs when the WebSocket gets an error. +

+

Syntax

+
public event EventHandler<ErrorEventArgs> OnError
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnMessage Event

+
+

+ Occurs when the WebSocket receives a data frame. +

+

Syntax

+
public event EventHandler<MessageEventArgs> OnMessage
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

OnOpen Event

+
+

+ Occurs when the WebSocket connection has been established. +

+

Syntax

+
public event EventHandler OnOpen
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Ping Method

+
+

+ Sends a Ping frame using the connection. +

+

Syntax

+
public bool Ping ()
+

Returns

+
+ true if the WebSocket receives a Pong frame in a time; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Ping Method

+
+

+ Sends a Ping frame with a message using the connection. +

+

Syntax

+
public bool Ping (string message)
+

Parameters

+
+
+
+ message +
+
+ A string that contains the message to be sent. +
+
+
+

Returns

+
+ true if the WebSocket receives a Pong frame in a time; otherwise, false. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Protocol Property

+
+

+ Gets the subprotocol selected by the server. +

+

Syntax

+
public string Protocol { get; }
+

Value

+
+ A string that contains the subprotocol if any. By default, String.Empty. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

ReadyState Property

+
+

+ Gets the state of the connection. +

+

Syntax

+
public WsState ReadyState { get; }
+

Value

+
+ One of the WebSocketSharp.WsState. By default, WsState.CONNECTING. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Send Method

+
+

+ Sends a binary data using the connection. +

+

Syntax

+
public void Send (byte[] data)
+

Parameters

+
+
+
+ data +
+
+ An array of byte that contains the binary data to be sent. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Send Method

+
+

+ Sends a binary data using the connection. +

+

Syntax

+
public void Send (System.IO.FileInfo file)
+

Parameters

+
+
+
+ file +
+
+ A System.IO.FileInfo that contains the binary data to be sent. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Send Method

+
+

+ Sends a text data using the connection. +

+

Syntax

+
public void Send (string data)
+

Parameters

+
+
+
+ data +
+
+ A string that contains the text data to be sent. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SendAsync Method

+
+

+ Sends a binary data asynchronously using the connection. +

+

Syntax

+
public void SendAsync (byte[] data, Action completed)
+

Parameters

+
+
+
+ data +
+
+ An array of byte that contains the binary data to be sent. +
+
+ completed +
+
+ An Action delegate that contains the method(s) that is called when an asynchronous operation completes. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SendAsync Method

+
+

+ Sends a binary data asynchronously using the connection. +

+

Syntax

+
public void SendAsync (System.IO.FileInfo file, Action completed)
+

Parameters

+
+
+
+ file +
+
+ A System.IO.FileInfo that contains the binary data to be sent. +
+
+ completed +
+
+ An Action delegate that contains the method(s) that is called when an asynchronous operation completes. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

SendAsync Method

+
+

+ Sends a text data asynchronously using the connection. +

+

Syntax

+
public void SendAsync (string data, Action completed)
+

Parameters

+
+
+
+ data +
+
+ A string that contains the text data to be sent. +
+
+ completed +
+
+ An Action delegate that contains the method(s) that is called when an asynchronous operation completes. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UnsentBuffer Property

+
+

+ Gets the buffer that contains unsent WebSocket frames. +

+

Syntax

+
public byte[] UnsentBuffer { get; }
+

Value

+
+ An array of byte that contains unsent WebSocket frames. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

UnsentCount Property

+
+

+ Gets the count of unsent WebSocket frames. +

+

Syntax

+
public uint UnsentCount { get; }
+

Value

+
+ A uint that contains the count of unsent WebSocket frames. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

Url Property

+
+

+ Gets or sets the WebSocket URL. +

+

Syntax

+
public Uri Url { get; set; }
+

Value

+
+ A Uri that contains the WebSocket URL. +
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/WsReceivedTooBigMessageException.html b/websocket-sharp/doc/html/WebSocketSharp/WsReceivedTooBigMessageException.html new file mode 100644 index 00000000..2ed2b90b --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/WsReceivedTooBigMessageException.html @@ -0,0 +1,351 @@ + + + WebSocketSharp.WsReceivedTooBigMessageException + + + + + + + +

WsReceivedTooBigMessageException Class

+

+ Documentation for this section has not yet been entered. +

+
+

Syntax

+
public class WsReceivedTooBigMessageException : Exception
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+

Members

+
+

+ See Also: Inherited members from + Exception. +

+

Public Constructors

+
+
+ + + + + + + + + + + +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+
+ + + Documentation for this section has not yet been entered. +
+
+
+

Extension Methods

+
+
+ + + + + + + + + +
+
static
+
+ + IsNull<T> + (this T) : bool
+ Determines whether the specified object is null. +
+
static
+
+ + IsNullDo<T> + (this T, Action) : bool
+ Determines whether the specified object is null. + And invokes the specified Action delegate if the specified object is null. +
+
+
+
+
+
+

Member Details

+
+

WsReceivedTooBigMessageException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WsReceivedTooBigMessageException ()
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+

WsReceivedTooBigMessageException Constructor

+
+

+ Documentation for this section has not yet been entered. +

+

Syntax

+
public WsReceivedTooBigMessageException (string message)
+

Parameters

+
+
+
+ message +
+
+ Documentation for this section has not yet been entered. +
+
+
+

Remarks

+
+ Documentation for this section has not yet been entered. +
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/WsState.html b/websocket-sharp/doc/html/WebSocketSharp/WsState.html new file mode 100644 index 00000000..341585f8 --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/WsState.html @@ -0,0 +1,273 @@ + + + WebSocketSharp.WsState + + + + + + + +

WsState Enum

+

+ Contains the values of the state of the WebSocket connection. +

+
+

Syntax

+
public enum WsState
+
+
+

Remarks

+
+ The WsState enumeration contains the values of the state of the WebSocket connection defined in + The WebSocket API. +
+

Members

+
+ + + + + + + + + + + + + + + + + + + + + +
Member NameDescription
+ CLOSED + + Equivalent to numeric value 3. Indicates that the connection has been closed or could not be opened. +
+ CLOSING + + Equivalent to numeric value 2. Indicates that the connection is going through the closing handshake, or the Close method has been invoked. +
+ CONNECTING + + Equivalent to numeric value 0. Indicates that the connection has not yet been established. +
+ OPEN + + Equivalent to numeric value 1. Indicates that the connection is established and communication is possible. +
+
+

Requirements

+
+ Namespace: WebSocketSharp
Assembly: websocket-sharp (in websocket-sharp.dll)
Assembly Versions: 1.0.2.36581
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/WebSocketSharp/index.html b/websocket-sharp/doc/html/WebSocketSharp/index.html new file mode 100644 index 00000000..431eeedf --- /dev/null +++ b/websocket-sharp/doc/html/WebSocketSharp/index.html @@ -0,0 +1,278 @@ + + + websocket-sharp: WebSocketSharp + + + + + + +

WebSocketSharp Namespace

+

+

+
+
+
+

Namespace

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ ByteOrder + + Contains the values that indicate whether the byte order is a Little-endian or Big-endian. +
+ CloseEventArgs + + Contains the event data associated with a WebSocketSharp.WebSocket.OnClose event. +
+ ErrorEventArgs + + Contains the event data associated with a error event. +
+ Ext + + Provides a set of static methods for the websocket-sharp. +
+ MessageEventArgs + + Contains the event data associated with a WebSocketSharp.WebSocket.OnMessage event. +
+ WebSocket + + Implements the WebSocket interface. +
+ WsReceivedTooBigMessageException + + Documentation for this section has not yet been entered. +
+ WsState + + Contains the values of the state of the WebSocket connection. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/html/index.html b/websocket-sharp/doc/html/index.html new file mode 100644 index 00000000..02b66da8 --- /dev/null +++ b/websocket-sharp/doc/html/index.html @@ -0,0 +1,594 @@ + + + websocket-sharp + + + + + +
+
+

websocket-sharp

+

+

+ Documentation for this section has not yet been entered. +
+

+
+
+
+

+ WebSocketSharp Namespace +

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ ByteOrder + + Contains the values that indicate whether the byte order is a Little-endian or Big-endian. +
+ CloseEventArgs + + Contains the event data associated with a WebSocketSharp.WebSocket.OnClose event. +
+ ErrorEventArgs + + Contains the event data associated with a error event. +
+ Ext + + Provides a set of static methods for the websocket-sharp. +
+ MessageEventArgs + + Contains the event data associated with a WebSocketSharp.WebSocket.OnMessage event. +
+ WebSocket + + Implements the WebSocket interface. +
+ WsReceivedTooBigMessageException + + Documentation for this section has not yet been entered. +
+ WsState + + Contains the values of the state of the WebSocket connection. +
+

+ WebSocketSharp.Frame Namespace +

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ CloseStatusCode + + Contains the values of the status codes for the WebSocket connection closure. +
+ Fin + + Contains the values of the FIN bit in the WebSocket data frame. +
+ Mask + + Contains the values of the MASK bit in the WebSocket data frame. +
+ Opcode + + Contains the values of the opcodes that denotes the frame type of the WebSocket frame. +
+ PayloadData + + Documentation for this section has not yet been entered. +
+ Rsv + + Contains the values of the reserved bit in the WebSocket data frame. +
+ WsFrame + + Documentation for this section has not yet been entered. +
+

+ WebSocketSharp.Net Namespace +

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ AuthenticationSchemes + + Documentation for this section has not yet been entered. +
+ AuthenticationSchemeSelector + + Documentation for this section has not yet been entered. +
+ Cookie + + Documentation for this section has not yet been entered. +
+ CookieCollection + + Documentation for this section has not yet been entered. +
+ CookieException + + Documentation for this section has not yet been entered. +
+ HttpListener + + Documentation for this section has not yet been entered. +
+ HttpListenerContext + + Documentation for this section has not yet been entered. +
+ HttpListenerException + + Documentation for this section has not yet been entered. +
+ HttpListenerPrefixCollection + + Documentation for this section has not yet been entered. +
+ HttpListenerRequest + + Documentation for this section has not yet been entered. +
+ HttpListenerResponse + + Documentation for this section has not yet been entered. +
+ HttpListenerWebSocketContext + + Documentation for this section has not yet been entered. +
+ HttpStatusCode + + Documentation for this section has not yet been entered. +
+ HttpVersion + + Documentation for this section has not yet been entered. +
+ WebHeaderCollection + + Documentation for this section has not yet been entered. +
+ WebSocketContext + + Documentation for this section has not yet been entered. +
+

+ WebSocketSharp.Net.Sockets Namespace +

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + +
TypeDescription
+ TcpListenerWebSocketContext + + Documentation for this section has not yet been entered. +
+

+ WebSocketSharp.Server Namespace +

+

+ Documentation for this section has not yet been entered. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ HttpServer + + Documentation for this section has not yet been entered. +
+ IServiceHost + + Exposes the methods and property for the WebSocket service host. +
+ ResponseEventArgs + + Documentation for this section has not yet been entered. +
+ ServiceManager + + Documentation for this section has not yet been entered. +
+ SessionManager + + Documentation for this section has not yet been entered. +
+ WebSocketServer + + Documentation for this section has not yet been entered. +
+ WebSocketServerBase + + Provides the basic functions of the server that receives the WebSocket connection requests. +
+ WebSocketService + + Documentation for this section has not yet been entered. +
+ WebSocketServiceHost<T> + + Documentation for this section has not yet been entered. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/CloseStatusCode.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/CloseStatusCode.xml new file mode 100644 index 00000000..a3f77c1a --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/CloseStatusCode.xml @@ -0,0 +1,246 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + Contains the values of the status codes for the WebSocket connection closure. + + + + The CloseStatusCode enumeration contains the values of the status codes for the WebSocket connection closure + defined in RFC 6455 for the WebSocket protocol. + + + "Reserved value" must not be set as a status code in a close control frame by an endpoint. + It is designated for use in applications expecting a status code to indicate that connection + was closed due to a system grounds. + + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1006. Indicates that the connection was closed abnormally. Reserved value. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1001. Indicates that an endpoint is "going away". + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1010. Indicates that an endpoint (client) is terminating the connection + because it has expected the server to negotiate one or more extension, but the server didn't return + them in the response message of the WebSocket handshake. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1007. Indicates that an endpoint is terminating the connection + because it has received data within a message that was not consistent with the type of the message. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1003. Indicates that an endpoint is terminating the connection + because it has received a type of data it cannot accept. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1005. Indicates that no status code was actually present. Reserved value. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1000. Indicates a normal closure. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1008. Indicates that an endpoint is terminating the connection + because it has received a message that violates its policy. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1002. Indicates that an endpoint is terminating the connection + due to a protocol error. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1011. Indicates that a server is terminating the connection because it encountered + an unexpected condition that prevented it from fulfilling the request. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1015. Indicates that the connection was closed due to a failure to perform + a TLS handshake. Reserved value. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1009. Indicates that an endpoint is terminating the connection + because it has received a message that is too big for it to process. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.CloseStatusCode + + + + Equivalent to close status 1004. Still undefined. Reserved value. + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Fin.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Fin.xml new file mode 100644 index 00000000..55571d41 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Fin.xml @@ -0,0 +1,59 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + Contains the values of the FIN bit in the WebSocket data frame. + + + + The Fin enumeration contains the values of the FIN bit defined in + RFC 6455 for the WebSocket protocol. + + + The FIN bit indicates whether a WebSocket frame is the final fragment in a message. + + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Fin + + + + Equivalent to numeric value 1. Indicates a final frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Fin + + + + Equivalent to numeric value 0. Indicates that more frames follow. + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Mask.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Mask.xml new file mode 100644 index 00000000..a28ab133 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Mask.xml @@ -0,0 +1,59 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + Contains the values of the MASK bit in the WebSocket data frame. + + + + The Mask enumeration contains the values of the MASK bit defined in + RFC 6455 for the WebSocket protocol. + + + The MASK bit indicates whether the payload data in a WebSocket frame is masked. + + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Mask + + + + Equivalent to numeric value 1. Indicates that the payload data in a frame is masked, a masking key is present in this frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Mask + + + + Equivalent to numeric value 0. Indicates that the payload data in a frame is not masked, no masking key in this frame. + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Opcode.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Opcode.xml new file mode 100644 index 00000000..97604798 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Opcode.xml @@ -0,0 +1,123 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + System.Flags + + + + + Contains the values of the opcodes that denotes the frame type of the WebSocket frame. + + + The Opcode enumeration contains the values of the opcodes defined in + RFC 6455 for the WebSocket protocol. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Equivalent to numeric value 2. Indicates a binary frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Equivalent to numeric value 8. Indicates a connection close frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Equivalent to numeric value 0. Indicates a continuation frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Equivalent to numeric value 9. Indicates a ping frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Equivalent to numeric value 10. Indicates a pong frame. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Equivalent to numeric value 1. Indicates a text frame. + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/PayloadData.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/PayloadData.xml new file mode 100644 index 00000000..ef3e46f0 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/PayloadData.xml @@ -0,0 +1,277 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.Collections.Generic.IEnumerable<System.Byte> + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte[] + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte[] + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerator<System.Byte> + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.UInt64 + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Field + + 1.0.2.36581 + + + System.UInt64 + + 9223372036854775807 + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.IEnumerator + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Rsv.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Rsv.xml new file mode 100644 index 00000000..7913514a --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/Rsv.xml @@ -0,0 +1,59 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + Contains the values of the reserved bit in the WebSocket data frame. + + + + The Rsv enumeration contains the values of the reserved bit (RSV1, RSV2, RSV3) defined in + RFC 6455 for the WebSocket protocol. + + + The reserved bit must be zero unless an extension is negotiated that defines meanings for non-zero values. + + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Rsv + + + + Equivalent to numeric value 0. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Frame.Rsv + + + + Equivalent to numeric value 1. + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/WsFrame.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/WsFrame.xml new file mode 100644 index 00000000..9081f00b --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Frame/WsFrame.xml @@ -0,0 +1,486 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.Collections.Generic.IEnumerable<System.Byte> + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte[] + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Fin + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerator<System.Byte> + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.UInt64 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Mask + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte[] + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Frame.WsFrame + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Frame.WsFrame + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Frame.WsFrame + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Frame.WsFrame + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.PayloadData + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.UInt64 + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Rsv + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Rsv + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Rsv + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.IEnumerator + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.xml new file mode 100644 index 00000000..114a75e4 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net.Sockets/TcpListenerWebSocketContext.xml @@ -0,0 +1,258 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + WebSocketSharp.Net.WebSocketContext + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.CookieCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPEndPoint + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Security.Principal.IPrincipal + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPEndPoint + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.WebSocket + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml new file mode 100644 index 00000000..19c47215 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemeSelector.xml @@ -0,0 +1,23 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Delegate + + + + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + To be added. + To be added. + To be added. + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml new file mode 100644 index 00000000..4d9062c7 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/AuthenticationSchemes.xml @@ -0,0 +1,120 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + System.Flags + + + + To be added. + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/Cookie.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/Cookie.xml new file mode 100644 index 00000000..4ef3e176 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/Cookie.xml @@ -0,0 +1,369 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.DateTime + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Int32 + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.DateTime + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieCollection.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieCollection.xml new file mode 100644 index 00000000..28a7f66b --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieCollection.xml @@ -0,0 +1,236 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.Collections.ICollection + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.IEnumerator + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.Cookie + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.Cookie + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Object + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieException.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieException.xml new file mode 100644 index 00000000..35fb2382 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/CookieException.xml @@ -0,0 +1,91 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.FormatException + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml new file mode 100644 index 00000000..122357de --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListener.xml @@ -0,0 +1,302 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.IDisposable + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemes + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.AuthenticationSchemeSelector + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.IAsyncResult + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerContext + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerContext + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerPrefixCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerContext.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerContext.xml new file mode 100644 index 00000000..a80e93e3 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerContext.xml @@ -0,0 +1,83 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerWebSocketContext + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerRequest + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerResponse + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Security.Principal.IPrincipal + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerException.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerException.xml new file mode 100644 index 00000000..9898bd57 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerException.xml @@ -0,0 +1,99 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.ComponentModel.Win32Exception + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml new file mode 100644 index 00000000..2868611e --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerPrefixCollection.xml @@ -0,0 +1,224 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.Collections.Generic.ICollection<System.String> + + + System.Collections.Generic.IEnumerable<System.String> + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerator<System.String> + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.IEnumerator + + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerRequest.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerRequest.xml new file mode 100644 index 00000000..d6815983 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerRequest.xml @@ -0,0 +1,509 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String[] + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.IAsyncResult + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Text.Encoding + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int64 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.CookieCollection + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Security.Cryptography.X509Certificates.X509Certificate2 + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Security.Cryptography.X509Certificates.X509Certificate2 + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.IO.Stream + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPEndPoint + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Version + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPEndPoint + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Guid + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String[] + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerResponse.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerResponse.xml new file mode 100644 index 00000000..4ca721e7 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerResponse.xml @@ -0,0 +1,401 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.IDisposable + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Text.Encoding + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int64 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.CookieCollection + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.WebHeaderCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.IO.Stream + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Version + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerWebSocketContext.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerWebSocketContext.xml new file mode 100644 index 00000000..ddc9de76 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpListenerWebSocketContext.xml @@ -0,0 +1,258 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + WebSocketSharp.Net.WebSocketContext + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.CookieCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPEndPoint + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Security.Principal.IPrincipal + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPEndPoint + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.WebSocket + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpStatusCode.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpStatusCode.xml new file mode 100644 index 00000000..b21d88a5 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpStatusCode.xml @@ -0,0 +1,661 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + To be added. + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpStatusCode + + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpVersion.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpVersion.xml new file mode 100644 index 00000000..e6a0bf70 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/HttpVersion.xml @@ -0,0 +1,61 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Field + + 1.0.2.36581 + + + System.Version + + + To be added. + To be added. + + + + + + Field + + 1.0.2.36581 + + + System.Version + + + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebHeaderCollection.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebHeaderCollection.xml new file mode 100644 index 00000000..75843a06 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebHeaderCollection.xml @@ -0,0 +1,639 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + + System.Runtime.Serialization.ISerializable + + + + + System.Runtime.InteropServices.ComVisible(true) + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String[] + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.IEnumerator + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String[] + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String[] + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameObjectCollectionBase+KeysCollection + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebSocketContext.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebSocketContext.xml new file mode 100644 index 00000000..1258265d --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Net/WebSocketContext.xml @@ -0,0 +1,223 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.CookieCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Security.Principal.IPrincipal + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.WebSocket + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/HttpServer.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/HttpServer.xml new file mode 100644 index 00000000..a1cf3345 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/HttpServer.xml @@ -0,0 +1,325 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + DefaultConstructorConstraint + WebSocketSharp.Server.WebSocketService + + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.ErrorEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.Server.ResponseEventArgs> + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/IServiceHost.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/IServiceHost.xml new file mode 100644 index 00000000..64b05c03 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/IServiceHost.xml @@ -0,0 +1,119 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + + + Exposes the methods and property for the WebSocket service host. + + + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + An to bind. + + + Binds the specified . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A to broadcast. + + + Broadcasts the specified . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Starts the WebSocket service host. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Stops the WebSocket service host. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + + Indicates whether the WebSocket service host closes the connection to a inactive service client. + + + true if the WebSocket service host closes the connection to a inactive service client; otherwise, false. + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/ResponseEventArgs.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/ResponseEventArgs.xml new file mode 100644 index 00000000..22358807 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/ResponseEventArgs.xml @@ -0,0 +1,66 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.EventArgs + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerRequest + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Net.HttpListenerResponse + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/ServiceManager.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/ServiceManager.xml new file mode 100644 index 00000000..3ed550d9 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/ServiceManager.xml @@ -0,0 +1,173 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<WebSocketSharp.Server.IServiceHost> + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/SessionManager.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/SessionManager.xml new file mode 100644 index 00000000..4b74ecff --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/SessionManager.xml @@ -0,0 +1,300 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.Dictionary<System.String,System.Boolean> + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Object + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServer.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServer.xml new file mode 100644 index 00000000..328b6bf4 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServer.xml @@ -0,0 +1,233 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + WebSocketSharp.Server.WebSocketServerBase + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + DefaultConstructorConstraint + WebSocketSharp.Server.WebSocketService + + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Generic.IEnumerable<System.String> + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServerBase.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServerBase.xml new file mode 100644 index 00000000..41df005e --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServerBase.xml @@ -0,0 +1,310 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + + Provides the basic functions of the server that receives the WebSocket connection requests. + + + The WebSocketServerBase class is an abstract class. + + + + + + + Constructor + + 1.0.2.36581 + + + + + Initializes a new instance of the class. + + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + A that contains a WebSocket URL. + + + Initializes a new instance of the class that listens for incoming connection attempts + on the specified WebSocket URL. + + To be added. + + is . + + + is invalid. + + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + + + An that contains a local IP address. + + + An that contains a port number. + + + A that contains a absolute path. + + + A that indicates providing a secure connection or not. (true indicates providing a secure connection.) + + + Initializes a new instance of the class that listens for incoming connection attempts + on the specified , , and . + + To be added. + + Either or is . + + + + is invalid. + + + -or- + + + Pair of and is invalid. + + + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A that contains the WebSocket connection. + + + Accepts the WebSocket connection. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Net.IPAddress + + + + Gets the local IP address on which to listen for incoming connection attempts. + + + A that contains a local IP address. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + + Gets or sets the WebSocket URL on which to listen for incoming connection attempts. + + + A that contains a WebSocket URL. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A that contains an error message. + + + Occurs the event with the specified . + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + + Gets a value indicating whether this server is secure. + + + true if this server is secure; otherwise, false. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + + Gets a value indicating whether this server is self host. + + + true if this server is self host; otherwise, false. + + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.ErrorEventArgs> + + + + Occurs when this server gets an error. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Int32 + + + + Gets the port on which to listen for incoming connection attempts. + + + An that contains a port number. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Starts to receive the WebSocket connection requests. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Stops receiving the WebSocket connection requests. + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketService.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketService.xml new file mode 100644 index 00000000..7fd917b4 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketService.xml @@ -0,0 +1,508 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.Dictionary<System.String,System.Boolean> + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.Dictionary<System.String,System.Boolean> + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Collections.Specialized.NameValueCollection + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Server.SessionManager + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServiceHost`1.xml b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServiceHost`1.xml new file mode 100644 index 00000000..e00e8ea3 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp.Server/WebSocketServiceHost`1.xml @@ -0,0 +1,286 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + + + DefaultConstructorConstraint + WebSocketSharp.Server.WebSocketService + + + + + WebSocketSharp.Server.WebSocketServerBase + + + + WebSocketSharp.Server.IServiceHost + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + + To be added. + To be added. + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.Dictionary<System.String,System.Boolean> + + + + + + To be added. + To be added. + To be added. + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + To be added. + To be added. + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/ByteOrder.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/ByteOrder.xml new file mode 100644 index 00000000..463b56e2 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/ByteOrder.xml @@ -0,0 +1,51 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + Contains the values that indicate whether the byte order is a Little-endian or Big-endian. + + To be added. + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.ByteOrder + + + + Indicates a Big-endian. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.ByteOrder + + + + Indicates a Little-endian. + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/CloseEventArgs.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/CloseEventArgs.xml new file mode 100644 index 00000000..7bd89f79 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/CloseEventArgs.xml @@ -0,0 +1,84 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + WebSocketSharp.MessageEventArgs + + + + + Contains the event data associated with a event. + + + The event occurs when the WebSocket receives a close control frame or + the WebSocket.Close method is called. If you want to get the reason for closure, you should access the or + properties. + + + + + + + Property + + 1.0.2.36581 + + + System.UInt16 + + + + Gets the status code for closure. + + + A that contains a status code for closure. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + Gets the reason for closure. + + + A that contains a reason for closure. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + + Indicates whether the connection closed cleanly or not. + + + true if the connection closed cleanly; otherwise, false. + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/ErrorEventArgs.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/ErrorEventArgs.xml new file mode 100644 index 00000000..fa95129a --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/ErrorEventArgs.xml @@ -0,0 +1,43 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.EventArgs + + + + + Contains the event data associated with a error event. + + + The error event occurs when this event sender gets an error. + If you want to get the error message, you should access the property. + + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + Gets the error message. + + + A that contains a error message. + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/Ext.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/Ext.xml new file mode 100644 index 00000000..9f429955 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/Ext.xml @@ -0,0 +1,1333 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + + Provides a set of static methods for the websocket-sharp. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + WebSocketSharp.Net.Sockets.TcpListenerWebSocketContext + + + + + + + + A that contains a TCP connection to accept a WebSocket connection from. + + + A that indicates a secure connection or not. (true indicates a secure connection.) + + + Accept a WebSocket connection by the . + + + A that contains a WebSocket connection. + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + + An to emit. + + + An that emits the . + + + An that contains no event data. + + + Emit the specified delegate if is not . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + System.EventArgs + + + + + + + + + + + The type of the event data generated by the event. + + + An EventHandler<TEventArgs> to emit. + + + An that emits the . + + + A TEventArgs that contains the event data. + + + Emit the specified EventHandler<TEventArgs> delegate if is not . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + + + An to compare. + + + A to compare. + + + A List<byte> to save the as . + + + Determines whether the specified equals the specified as . + And save this specified as to the specified List<byte>. + + + true if the parameter equals the parameter as ; otherwise, false. + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is outside the allowable range of values as . + + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + + A that contains the entries. + + + A that contains the key of the entry to find. + + + Determines whether the entry with the specified key exists in the specified . + + + true if the entry with the exists in the ; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + + + A that contains the entries. + + + A that contains the key of the entry to find. + + + A that contains the value of the entry to find. + + + Determines whether the entry with the specified both key and value exists in the specified . + + + true if the entry with the both and exists in the ; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + A that contains the URI to get the absolute path from. + + + Gets the absolute path from the specified . + + + A that contains the absolute path if got successfully; otherwise, . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + One of values that contains the HTTP status code. + + + Gets the description of the HTTP status code using the specified code. + + + A that contains the description of the . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + Gets the name from the specified that contains a pair of name and value are separated by a separator string. + + + A that contains the name if any; otherwise, null. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Collections.Generic.KeyValuePair<System.String,System.String> + + + + + + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + Gets the name and value from the specified that contains a pair of name and value are separated by a separator string. + + + A KeyValuePair<string, string> that contains the name and value if any. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + An that contains the HTTP status code. + + + Gets the description of the HTTP status code using the specified code. + + + A that contains the description of the . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + Gets the value from the specified that contains a pair of name and value are separated by a separator string. + + + A that contains the value if any; otherwise, null. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is a . + + + true if the parameter is a ; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is host (this computer architecture) byte order. + + + true if the parameter is host byte order; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + ReferenceTypeConstraint + + + + + + + + + The type of the parameter. + + + A class to test. + + + Determines whether the specified object is . + + + true if the parameter is ; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + ReferenceTypeConstraint + + + + + + + + + + The type of the parameter. + + + A class to test. + + + An delegate that contains the method(s) called if the is . + + + Determines whether the specified object is . + And invokes the specified delegate if the specified object is . + + + true if the parameter is ; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is or . + + + true if the parameter is or ; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is predefined scheme. + + + true if the parameter is the predefined scheme; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + + A to test. + + + A that receives a message if the is invalid. + + + Determines whether the specified is valid absolute path. + + + true if the parameter is valid absolute path; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is a URI string. + + + true if the parameter is maybe a URI string; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + + + The first to compare. + + + The second to compare. + + + A that indicates a case-sensitive or insensitive comparison. (true indicates a case-insensitive comparison.) + + + Determines whether two specified objects don't have the same value. + + + true if the value of parameter isn't the same as the value of parameter; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + + + + + A that contains the data to read. + + + An that contains the number of bytes to read. + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + An array of that receives the read data. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + + + + + A that contains the data to read. + + + A that contains the number of bytes to read. + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + An array of that receives the read data. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + + + + + + A that contains the data to read. + + + A that contains the number of bytes to read. + + + An that contains the buffer size in bytes of each internal read. + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + An array of that receives the read data. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + T[] + + + + + + + + + + + + The type of elements in the . + + + An array of T that contains the data to retrieve a sub-array. + + + An that contains the zero-based starting position of a sub-array in the . + + + An that contains the number of elements to retrieve a sub-array. + + + Retrieves a sub-array from the specified . A sub-array starts at the specified element position. + + + An array of T that receives a sub-array, or an empty array of T if any problems with the parameters. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + An that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + An that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + T + + + + + DefaultConstructorConstraint + NotNullableValueTypeConstraint + System.ValueType + + + + + + + + + + The type of the return value. The T must be a value type. + + + An array of to convert. + + + A that indicates the byte order of the . + + + Converts the specified array of to the specified type data. + + + A T converted from the , or a default value of T + if the is an empty array of + or if the types of T aren't the , , , + , , , , + , , . + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + + DefaultConstructorConstraint + NotNullableValueTypeConstraint + System.ValueType + + + + + + + + + + The type of the . The T must be a value type. + + + A T to convert. + + + A that indicates the byte order of the return. + + + Converts the specified data to an array of . + + + An array of converted from the . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Byte[] + + + + + + + + An array of to convert. + + + A that indicates the byte order of the . + + + Converts the order of the specified array of to the host byte order. + + + An array of converted from the . + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + + + + + The type of elements in the . + + + An array of T to convert. + + + A that contains a separator string. + + + Converts the specified array to a concatenated the specified separator string + between each element of this array. + + + A converted from the parameter, or a + if the length of the is zero. + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + + + Method + + 1.0.2.36581 + + + System.Uri + + + + + + + A to convert. + + + Converts the specified to a object. + + + A converted from the parameter, or + if the is or . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + + + A that contains a WebSocket URI. + + + When this method returns, contains a created WebSocket if the parameter is valid WebSocket URI; otherwise, . + + + When this method returns, contains a error message if the parameter is invalid WebSocket URI; otherwise, String.Empty. + + + Tries to create a new WebSocket using the specified . + + + true if the WebSocket was successfully created; otherwise, false. + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + A to decode. + + + URL-decodes the specified . + + + A that receives a decoded string, or the parameter + if the is or . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.String + + + + + + + A to encode. + + + URL-encodes the specified . + + + A that receives a encoded string, or the parameter + if the is or . + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains a network stream to write a content data. + + + An array of that contains a content data to write. + + + Writes the specified content data using the specified . + + To be added. + + Is thrown when the parameter passed to a method is invalid because it is . + + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/MessageEventArgs.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/MessageEventArgs.xml new file mode 100644 index 00000000..eb780552 --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/MessageEventArgs.xml @@ -0,0 +1,84 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.EventArgs + + + + + Contains the event data associated with a event. + + + The event occurs when the WebSocket receives a text or binary data frame. + If you want to get the received data, you should access the or + properties. + + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + Gets the received data as a . + + + A that contains a received data. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte[] + + + + Gets the received data as an array of . + + + An array of that contains a received data. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.Frame.Opcode + + + + Gets the type of received data. + + + One of the that indicates the type of received data. + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/WebSocket.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/WebSocket.xml new file mode 100644 index 00000000..3777479a --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/WebSocket.xml @@ -0,0 +1,698 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Object + + + + System.IDisposable + + + + + Implements the WebSocket interface. + + + The WebSocket class provides methods and properties for two-way communication using the WebSocket protocol (RFC 6455). + + + + + + + Constructor + + 1.0.2.36581 + + + + + + + System.ParamArray + + + + + + + A that contains the WebSocket URL. + + + An array of that contains the WebSocket subprotocols if any. + + + Initializes a new instance of the class with the specified WebSocket URL and subprotocols. + + To be added. + + is . + + + is not valid WebSocket URL. + + + + + + + Constructor + + 1.0.2.36581 + + + + + + + + + + + System.ParamArray + + + + + + + A that contains the WebSocket URL. + + + An OnOpen event handler. + + + An OnMessage event handler. + + + An OnError event handler. + + + An OnClose event handler. + + + An array of that contains the WebSocket subprotocols if any. + + + Initializes a new instance of the class with the specified WebSocket URL, OnOpen, OnMessage, OnError, OnClose event handlers and subprotocols. + + To be added. + + is . + + + is not valid WebSocket URL. + + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A that contains a status code indicating a reason for closure. + + + Closes the connection and releases all associated resources after sends a Close control frame. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A that contains a status code indicating a reason for closure. + + + Closes the connection and releases all associated resources after sends a Close control frame. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains a status code indicating a reason for closure. + + + A that contains a reason for closure. + + + Closes the connection and releases all associated resources after sends a Close control frame. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains a status code indicating a reason for closure. + + + A that contains a reason for closure. + + + Closes the connection and releases all associated resources after sends a Close control frame. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Establishes a connection. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + Closes the connection and releases all associated resources after sends a Close control frame. + + + Call when you are finished using the . The + method leaves the in an unusable state. After + calling , you must release all references to the so + the garbage collector can reclaim the memory that the was occupying. + + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + Gets the extensions selected by the server. + + + A that contains the extensions if any. By default, String.Empty. (Currently this will only ever be the String.Empty.) + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + + Gets a value indicating whether a connection is alive. + + + true if the connection is alive; otherwise, false. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Boolean + + + + Gets a value indicating whether a connection is secure. + + + true if the connection is secure; otherwise, false. + + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.CloseEventArgs> + + + + Occurs when the WebSocket receives a Close frame or the Close method is called. + + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.ErrorEventArgs> + + + + Occurs when the WebSocket gets an error. + + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler<WebSocketSharp.MessageEventArgs> + + + + Occurs when the WebSocket receives a data frame. + + To be added. + + + + + + Event + + 1.0.2.36581 + + + System.EventHandler + + + + Occurs when the WebSocket connection has been established. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + Sends a Ping frame using the connection. + + + true if the WebSocket receives a Pong frame in a time; otherwise, false. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Boolean + + + + + + + A that contains the message to be sent. + + + Sends a Ping frame with a message using the connection. + + + true if the WebSocket receives a Pong frame in a time; otherwise, false. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.String + + + + Gets the subprotocol selected by the server. + + + A that contains the subprotocol if any. By default, String.Empty. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + WebSocketSharp.WsState + + + + Gets the state of the connection. + + + One of the . By default, WsState.CONNECTING. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + An array of that contains the binary data to be sent. + + + Sends a binary data using the connection. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A that contains the binary data to be sent. + + + Sends a binary data using the connection. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + A that contains the text data to be sent. + + + Sends a text data using the connection. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + An array of that contains the binary data to be sent. + + + An delegate that contains the method(s) that is called when an asynchronous operation completes. + + + Sends a binary data asynchronously using the connection. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the binary data to be sent. + + + An delegate that contains the method(s) that is called when an asynchronous operation completes. + + + Sends a binary data asynchronously using the connection. + + To be added. + + + + + + Method + + 1.0.2.36581 + + + System.Void + + + + + + + + A that contains the text data to be sent. + + + An delegate that contains the method(s) that is called when an asynchronous operation completes. + + + Sends a text data asynchronously using the connection. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Byte[] + + + + Gets the buffer that contains unsent WebSocket frames. + + + An array of that contains unsent WebSocket frames. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.UInt32 + + + + Gets the count of unsent WebSocket frames. + + + A that contains the count of unsent WebSocket frames. + + To be added. + + + + + + Property + + 1.0.2.36581 + + + System.Uri + + + + Gets or sets the WebSocket URL. + + + A that contains the WebSocket URL. + + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/WsReceivedTooBigMessageException.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/WsReceivedTooBigMessageException.xml new file mode 100644 index 00000000..12a9567e --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/WsReceivedTooBigMessageException.xml @@ -0,0 +1,47 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Exception + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + To be added. + To be added. + + + + + + Constructor + + 1.0.2.36581 + + + + + + To be added. + To be added. + To be added. + + + + diff --git a/websocket-sharp/doc/mdoc/WebSocketSharp/WsState.xml b/websocket-sharp/doc/mdoc/WebSocketSharp/WsState.xml new file mode 100644 index 00000000..b5debebf --- /dev/null +++ b/websocket-sharp/doc/mdoc/WebSocketSharp/WsState.xml @@ -0,0 +1,86 @@ + + + + + websocket-sharp + 1.0.2.36581 + + + System.Enum + + + + Contains the values of the state of the WebSocket connection. + + + The WsState enumeration contains the values of the state of the WebSocket connection defined in + The WebSocket API. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.WsState + + + + Equivalent to numeric value 3. Indicates that the connection has been closed or could not be opened. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.WsState + + + + Equivalent to numeric value 2. Indicates that the connection is going through the closing handshake, or the Close method has been invoked. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.WsState + + + + Equivalent to numeric value 0. Indicates that the connection has not yet been established. + + + + + + + Field + + 1.0.2.36581 + + + WebSocketSharp.WsState + + + + Equivalent to numeric value 1. Indicates that the connection is established and communication is possible. + + + + + diff --git a/websocket-sharp/doc/mdoc/index.xml b/websocket-sharp/doc/mdoc/index.xml new file mode 100644 index 00000000..e0f16ad3 --- /dev/null +++ b/websocket-sharp/doc/mdoc/index.xml @@ -0,0 +1,1366 @@ + + + + [00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 11 00 00 00 29 17 fb 89 fe c3 91 f7 2b cb 8b e2 61 d2 3f 05 93 6d 65 a8 9e 63 72 a6 f5 d5 2c f2 9d 20 fa 0b c0 70 6a f6 88 7e 8b 90 3f 39 f5 76 c8 48 e0 bb 7b b2 7b ed d3 10 a7 1a 0f 70 98 0f 7f f4 4b 53 09 d2 a5 ef 36 c3 56 b4 aa f0 91 72 63 25 07 89 e0 93 3e 3f 2e f2 b9 73 0e 12 15 5d 43 56 c3 f4 70 a5 89 fe f7 f6 ac 3e 77 c2 d8 d0 84 91 f4 0c d1 f3 8e dc c3 c3 b8 38 3d 0c bf 17 de 20 78 c1 ] + + + System.Reflection.AssemblyCompany("") + + + System.Reflection.AssemblyConfiguration("") + + + System.Reflection.AssemblyCopyright("sta.blockhead") + + + System.Reflection.AssemblyDescription("A C# implementation of WebSocket protocol client & server") + + + System.Reflection.AssemblyProduct("websocket-sharp.dll") + + + System.Reflection.AssemblyTitle("websocket-sharp") + + + System.Reflection.AssemblyTrademark("") + + + System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true) + + + + + To be added. + To be added. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + websocket-sharp + + + + + + + + + ExtensionMethod + + WebSocketSharp.Net.Sockets.TcpListenerWebSocketContext + + + + + + + + A that contains a TCP connection to accept a WebSocket connection from. + + + A that indicates a secure connection or not. (true indicates a secure connection.) + + + Accept a WebSocket connection by the . + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + + An to emit. + + + An that emits the . + + + An that contains no event data. + + + Emit the specified delegate if is not . + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + System.EventArgs + + + + + + + + + + + The type of the event data generated by the event. + + + An EventHandler<TEventArgs> to emit. + + + An that emits the . + + + A TEventArgs that contains the event data. + + + Emit the specified EventHandler<TEventArgs> delegate if is not . + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + + + An to compare. + + + A to compare. + + + A List<byte> to save the as . + + + Determines whether the specified equals the specified as . + And save this specified as to the specified List<byte>. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + + A that contains the entries. + + + A that contains the key of the entry to find. + + + Determines whether the entry with the specified key exists in the specified . + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + + + A that contains the entries. + + + A that contains the key of the entry to find. + + + A that contains the value of the entry to find. + + + Determines whether the entry with the specified both key and value exists in the specified . + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + A that contains the URI to get the absolute path from. + + + Gets the absolute path from the specified . + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + One of values that contains the HTTP status code. + + + Gets the description of the HTTP status code using the specified code. + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + Gets the name from the specified that contains a pair of name and value are separated by a separator string. + + + + + + + + + + + + + ExtensionMethod + + System.Collections.Generic.KeyValuePair<System.String,System.String> + + + + + + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + Gets the name and value from the specified that contains a pair of name and value are separated by a separator string. + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + An that contains the HTTP status code. + + + Gets the description of the HTTP status code using the specified code. + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + + A that contains a pair of name and value are separated by a separator string. + + + A that contains a separator string. + + + Gets the value from the specified that contains a pair of name and value are separated by a separator string. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is a . + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is host (this computer architecture) byte order. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + ReferenceTypeConstraint + + + + + + + + + The type of the parameter. + + + A class to test. + + + Determines whether the specified object is . + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + ReferenceTypeConstraint + + + + + + + + + + The type of the parameter. + + + A class to test. + + + An delegate that contains the method(s) called if the is . + + + Determines whether the specified object is . + And invokes the specified delegate if the specified object is . + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is or . + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is predefined scheme. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + + A to test. + + + A that receives a message if the is invalid. + + + Determines whether the specified is valid absolute path. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + A to test. + + + Determines whether the specified is a URI string. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + + + The first to compare. + + + The second to compare. + + + A that indicates a case-sensitive or insensitive comparison. (true indicates a case-insensitive comparison.) + + + Determines whether two specified objects don't have the same value. + + + + + + + + + + + + + ExtensionMethod + + System.Byte[] + + + + + + + + A that contains the data to read. + + + An that contains the number of bytes to read. + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + + + + + + + + + + + ExtensionMethod + + System.Byte[] + + + + + + + + A that contains the data to read. + + + A that contains the number of bytes to read. + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + + + + + + + + + + + ExtensionMethod + + System.Byte[] + + + + + + + + + A that contains the data to read. + + + A that contains the number of bytes to read. + + + An that contains the buffer size in bytes of each internal read. + + + Reads a block of bytes from the specified stream and returns the read data in an array of . + + + + + + + + + + + + + ExtensionMethod + + T[] + + + + + + + + + + + + The type of elements in the . + + + An array of T that contains the data to retrieve a sub-array. + + + An that contains the zero-based starting position of a sub-array in the . + + + An that contains the number of elements to retrieve a sub-array. + + + Retrieves a sub-array from the specified . A sub-array starts at the specified element position. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + An that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + An that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An delegate that contains the method(s) to execute. + + + Executes the specified delegate times. + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains the number of times to execute. + + + An Action<ulong> delegate that contains the method(s) to execute. + A parameter to pass to this method(s) contains the zero-based count of iteration. + + + Executes the specified Action<ulong> delegate times. + + + + + + + + + + + + + ExtensionMethod + + T + + + + + DefaultConstructorConstraint + NotNullableValueTypeConstraint + System.ValueType + + + + + + + + + + The type of the return value. The T must be a value type. + + + An array of to convert. + + + A that indicates the byte order of the . + + + Converts the specified array of to the specified type data. + + + + + + + + + + + + + ExtensionMethod + + System.Byte[] + + + + + DefaultConstructorConstraint + NotNullableValueTypeConstraint + System.ValueType + + + + + + + + + + The type of the . The T must be a value type. + + + A T to convert. + + + A that indicates the byte order of the return. + + + Converts the specified data to an array of . + + + + + + + + + + + + + ExtensionMethod + + System.Byte[] + + + + + + + + An array of to convert. + + + A that indicates the byte order of the . + + + Converts the order of the specified array of to the host byte order. + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + + + + + The type of elements in the . + + + An array of T to convert. + + + A that contains a separator string. + + + Converts the specified array to a concatenated the specified separator string + between each element of this array. + + + + + + + + + + + + + ExtensionMethod + + System.Uri + + + + + + + A to convert. + + + Converts the specified to a object. + + + + + + + + + + + + + ExtensionMethod + + System.Boolean + + + + + + + + + A that contains a WebSocket URI. + + + When this method returns, contains a created WebSocket if the parameter is valid WebSocket URI; otherwise, . + + + When this method returns, contains a error message if the parameter is invalid WebSocket URI; otherwise, String.Empty. + + + Tries to create a new WebSocket using the specified . + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + A to decode. + + + URL-decodes the specified . + + + + + + + + + + + + + ExtensionMethod + + System.String + + + + + + + A to encode. + + + URL-encodes the specified . + + + + + + + + + + + + + ExtensionMethod + + System.Void + + + + + + + + A that contains a network stream to write a content data. + + + An array of that contains a content data to write. + + + Writes the specified content data using the specified . + + + + + + + diff --git a/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Frame.xml b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Frame.xml new file mode 100644 index 00000000..a8285726 --- /dev/null +++ b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Frame.xml @@ -0,0 +1,6 @@ + + + To be added. + To be added. + + diff --git a/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.Sockets.xml b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.Sockets.xml new file mode 100644 index 00000000..66cc5065 --- /dev/null +++ b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.Sockets.xml @@ -0,0 +1,6 @@ + + + To be added. + To be added. + + diff --git a/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.xml b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.xml new file mode 100644 index 00000000..b9b2a5b0 --- /dev/null +++ b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Net.xml @@ -0,0 +1,6 @@ + + + To be added. + To be added. + + diff --git a/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Server.xml b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Server.xml new file mode 100644 index 00000000..aafcc5f5 --- /dev/null +++ b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.Server.xml @@ -0,0 +1,6 @@ + + + To be added. + To be added. + + diff --git a/websocket-sharp/doc/mdoc/ns-WebSocketSharp.xml b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.xml new file mode 100644 index 00000000..7cee8309 --- /dev/null +++ b/websocket-sharp/doc/mdoc/ns-WebSocketSharp.xml @@ -0,0 +1,6 @@ + + + To be added. + To be added. + + diff --git a/websocket-sharp/websocket-sharp.csproj b/websocket-sharp/websocket-sharp.csproj index ab75a1cc..129dff42 100644 --- a/websocket-sharp/websocket-sharp.csproj +++ b/websocket-sharp/websocket-sharp.csproj @@ -48,6 +48,12 @@ prompt 4 false + true + + + + + diff --git a/websocket-sharp/websocket-sharp.pidb b/websocket-sharp/websocket-sharp.pidb index 3e9e004cf36106c89615acef46a2d03bfa5577b1..ad775a4cb253e0b05672595747c586b4926ed417 100644 GIT binary patch delta 33204 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 Ki+R=!_x}Jm+=s&e delta 23111 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 T0?rH_4alX9TU|#rpYQ(w0d{fn