<?xml version="1.0"?>
<doc>
    <assembly>
        <name>com.Tivadar.Best.WebSockets</name>
    </assembly>
    <members>
        <member name="T:Best.WebSockets.Extensions.IExtension">
            <summary>
            Interface for websocket-extension implementations.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.IExtension.AddNegotiation(Best.HTTP.HTTPRequest)">
            <summary>
            This is the first pass: here we can add headers to the request to initiate an extension negotiation.
            </summary>
            <param name="request"></param>
        </member>
        <member name="M:Best.WebSockets.Extensions.IExtension.ParseNegotiation(Best.HTTP.HTTPResponse)">
            <summary>
            If the websocket upgrade succeded it will call this function to be able to parse the server's negotiation
            response. Inside this function the IsEnabled should be set.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.IExtension.GetFrameHeader(Best.WebSockets.Implementations.Frames.WebSocketFrame,System.Byte)">
            <summary>
            This function should return a new header flag based on the inFlag parameter. The extension should set only the
            Rsv1-3 bits in the header.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.IExtension.Encode(Best.WebSockets.Implementations.Frames.WebSocketFrame)">
            <summary>
            This function will be called to be able to transform the data that will be sent to the server.
            </summary>
            <param name="writer"></param>
            <returns></returns>
        </member>
        <member name="M:Best.WebSockets.Extensions.IExtension.Decode(System.Byte,Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment)">
            <summary>
            This function can be used the decode the server-sent data.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Extensions.PerMessageCompression">
            <summary>
            Compression Extensions for WebSocket implementation.
            http://tools.ietf.org/html/rfc7692
            </summary>
        </member>
        <member name="P:Best.WebSockets.Extensions.PerMessageCompression.ClientNoContextTakeover">
            <summary>
            By including this extension parameter in an extension negotiation offer, a client informs the peer server
            of a hint that even if the server doesn't include the "client_no_context_takeover" extension parameter in
            the corresponding extension negotiation response to the offer, the client is not going to use context takeover.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Extensions.PerMessageCompression.ServerNoContextTakeover">
            <summary>
            By including this extension parameter in an extension negotiation offer, a client prevents the peer server from using context takeover.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Extensions.PerMessageCompression.ClientMaxWindowBits">
            <summary>
            This parameter indicates the base-2 logarithm of the LZ77 sliding window size of the client context.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Extensions.PerMessageCompression.ServerMaxWindowBits">
            <summary>
            This parameter indicates the base-2 logarithm of the LZ77 sliding window size of the server context.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Extensions.PerMessageCompression.Level">
            <summary>
            The compression level that the client will use to compress the frames.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Extensions.PerMessageCompression.MinimumDataLegthToCompress">
            <summary>
            What minimum data length will trigger the compression.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Extensions.PerMessageCompression.compressorOutputStream">
            <summary>
            Cached object to support context takeover.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Extensions.PerMessageCompression.decompressorInputStream">
            <summary>
            Cached object to support context takeover.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.PerMessageCompression.AddNegotiation(Best.HTTP.HTTPRequest)">
            <summary>
            This will start the permessage-deflate negotiation process.
            <seealso href="http://tools.ietf.org/html/rfc7692#section-5.1"/>
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.PerMessageCompression.GetFrameHeader(Best.WebSockets.Implementations.Frames.WebSocketFrame,System.Byte)">
            <summary>
            IExtension implementation to set the Rsv1 flag in the header if we are we will want to compress the data
            in the writer.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.PerMessageCompression.Encode(Best.WebSockets.Implementations.Frames.WebSocketFrame)">
            <summary>
            IExtension implementation to be able to compress the data hold in the writer.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.PerMessageCompression.Decode(System.Byte,Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment)">
            <summary>
            IExtension implementation to possible decompress the data.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.PerMessageCompression.Compress(Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment)">
            <summary>
            A function to compress and return the data parameter with possible context takeover support (reusing the DeflateStream).
            </summary>
        </member>
        <member name="M:Best.WebSockets.Extensions.PerMessageCompression.Decompress(Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment)">
            <summary>
            A function to decompress and return the data parameter with possible context takeover support (reusing the DeflateStream).
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.Frames.WebSocketFrame">
            <summary>
            Denotes a binary frame. The "Payload data" is arbitrary binary data whose interpretation is solely up to the application layer.
            This is the base class of all other frame writers, as all frame can be represented as a byte array.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.Frames.WebSocketFrameReader">
            <summary>
            Represents an incoming WebSocket Frame.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Implementations.Frames.WebSocketFrameReader.IsFinal">
            <summary>
            True if it's a final Frame in a sequence, or the only one.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Implementations.Frames.WebSocketFrameReader.Type">
            <summary>
            The type of the Frame.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Implementations.Frames.WebSocketFrameReader.Data">
            <summary>
            The decoded array of bytes.
            </summary>
        </member>
        <member name="P:Best.WebSockets.Implementations.Frames.WebSocketFrameReader.DataAsText">
            <summary>
            Textual representation of the received Data.
            </summary>
        </member>
        <member name="M:Best.WebSockets.Implementations.Frames.WebSocketFrameReader.Assemble(System.Collections.Generic.List{Best.WebSockets.Implementations.Frames.WebSocketFrameReader})">
            <summary>
            Assembles all fragments into a final frame. Call this on the last fragment of a frame.
            </summary>
            <param name="fragments">The list of previously downloaded and parsed fragments of the frame</param>
        </member>
        <member name="M:Best.WebSockets.Implementations.Frames.WebSocketFrameReader.DecodeWithExtensions(Best.WebSockets.WebSocket)">
            <summary>
            This function will decode the received data incrementally with the associated websocket's extensions.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.Frames.WebSocketFrameTypes">
            <summary>
            Enumeration for possible WebSocket frame types.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.Frames.WebSocketFrameTypes.Continuation">
            <summary>
            A fragmented message's first frame's contain the type of the message(binary or text), all consecutive frame of that message must be a Continuation frame.
            Last of these frame's Fin bit must be 1.
            </summary>
            <example>For a text message sent as three fragments, the first fragment would have an opcode of 0x1 (text) and a FIN bit clear,
            the second fragment would have an opcode of 0x0 (Continuation) and a FIN bit clear,
            and the third fragment would have an opcode of 0x0 (Continuation) and a FIN bit that is set.</example>
        </member>
        <member name="F:Best.WebSockets.Implementations.Frames.WebSocketFrameTypes.ConnectionClose">
            <summary>
            The Close frame MAY contain a body (the "Application data" portion of the frame) that indicates a reason for closing,
            such as an endpoint shutting down, an endpoint having received a frame too large, or an endpoint having received a frame that
            does not conform to the format expected by the endpoint.
            As the data is not guaranteed to be human readable, clients MUST NOT show it to end users.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.Frames.WebSocketFrameTypes.Ping">
            <summary>
            The Ping frame contains an opcode of 0x9. A Ping frame MAY include "Application data".
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.Frames.WebSocketFrameTypes.Pong">
            <summary>
            A Pong frame sent in response to a Ping frame must have identical "Application data" as found in the message body of the Ping frame being replied to.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.OverHTTP1">
            <summary>
            Implements WebSocket communication through an HTTP/1 connection.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.OverHTTP1.requestSent">
            <summary>
            Indicates whether we sent out the connection request to the server.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.OverHTTP2">
            <summary>
            Implements RFC 8441 (https://tools.ietf.org/html/rfc8441) to use Websocket over HTTP/2
            </summary>
        </member>
        <member name="M:Best.WebSockets.Implementations.OverHTTP2.GetNextInteraction">
            <summary>
            Next interaction relative to *now*.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.WebSocketStates">
            <summary>
            States of the underlying implementation's state.
            </summary>
        </member>
        <member name="T:Best.WebSockets.Implementations.WebSocketBaseImplementation">
            <summary>
            Abstract class for concrete websocket communication implementations.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.WebSocketBaseImplementation.RTTBufferCapacity">
            <summary>
            Capacity of the RTT buffer where the latencies are kept.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.WebSocketBaseImplementation.rtts">
            <summary>
            A circular buffer to store the last N rtt times calculated by the pong messages.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.WebSocketBaseImplementation.lastPing">
            <summary>
            When we sent out the last ping.
            </summary>
        </member>
        <member name="F:Best.WebSockets.Implementations.WebSocketBaseImplementation._closeSent">
            <summary>
            True if we sent out a Close message to the server
            </summary>
        </member>
        <member name="M:Best.WebSockets.Implementations.WebSocketBaseImplementation.Send(Best.WebSockets.Implementations.Frames.WebSocketFrame)">
            <summary>
            It will send the given frame to the server.
            </summary>
        </member>
        <member name="T:Best.WebSockets.WebSocket">
            <summary>
            Implements the WebSocket standard for duplex, two-way communications.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocket.MaxFragmentSize">
            <summary>
            Maximum payload size of a websocket frame. Its default value is 32 KiB.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.IsOpen">
            <summary>
            The connection to the WebSocket server is open.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.BufferedAmount">
            <summary>
            Data waiting to be written to the wire.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.SendPings">
            <summary>
            Set to <c>true</c> to start sending Ping frames to the WebSocket server.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.PingFrequency">
            <summary>
            The delay between two Pings in milliseconds. Minimum value is 100ms, default is 10 seconds.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.CloseAfterNoMessage">
            <summary>
            If <see cref="P:Best.WebSockets.WebSocket.SendPings"/> set to <c>true</c>, the plugin will close the connection and emit an <see cref="F:Best.WebSockets.WebSocket.OnClosed"/> event if no
            message is received from the server in the given time. Its default value is 2 sec.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.InternalRequest">
            <summary>
            The internal <see cref="T:Best.HTTP.HTTPRequest"/> object.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.Extensions">
            <summary>
            <see cref="T:Best.WebSockets.Extensions.IExtension"/> implementations the plugin will negotiate with the server to use.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.Latency">
            <summary>
            Latency calculated from ping-pong message round-trip times.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.LastMessageReceived">
            <summary>
            When the WebSocket instance received the last message from the server.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocket.OnInternalRequestCreated">
            <summary>
            When the <c>Websocket Over HTTP/2</c> implementation fails to connect and <see cref="T:Best.HTTP.Hosts.Connections.HTTP2.WebSocketOverHTTP2Settings"/><c>.</c><see cref="P:Best.HTTP.Hosts.Connections.HTTP2.WebSocketOverHTTP2Settings.EnableImplementationFallback"/> is <c>true</c>, the plugin tries to fall back to the HTTP/1 implementation.
            When this happens a new <see cref="P:Best.WebSockets.WebSocket.InternalRequest"/> is created and all previous custom modifications (like added headers) are lost. With OnInternalRequestCreated these modifications can be reapplied.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocket.OnOpen">
            <summary>
            Called when the connection to the WebSocket server is established.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocket.OnMessage">
            <summary>
            Called when a new textual message is received from the server.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocket.OnBinary">
            <summary>
            Called when a Binary message received. 
            The content of the <see cref="T:Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment"/> must be used or copied to a new array in the callbacks because the plugin reuses the memory immediately after the callback by placing it back to the <see cref="T:Best.HTTP.Shared.PlatformSupport.Memory.BufferPool"/>!
            </summary>
            <remarks>Note that the memory will be reused when this event returns. Either process it in this call or make a copy from the received data.</remarks>
        </member>
        <member name="F:Best.WebSockets.WebSocket.OnClosed">
            <summary>
            Called when the WebSocket connection is closed.
            </summary>
        </member>
        <member name="P:Best.WebSockets.WebSocket.Context">
            <summary>
            Logging context of this websocket instance.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocket.implementation">
            <summary>
            The underlying, real implementation.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.#ctor(System.Uri)">
            <summary>
            Creates a WebSocket instance from the given uri.
            </summary>
            <param name="uri">The uri of the WebSocket server</param>
        </member>
        <member name="M:Best.WebSockets.WebSocket.#ctor(System.Uri,System.String,System.String)">
            <summary>
            Creates a WebSocket instance from the given uri.
            </summary>
            <param name="uri">Uri of the WebSocket endpoint.</param>
            <param name="origin">Where the WebSocket originating from.</param>
            <param name="protocol">The application-level protocol that the client want to use(eg. "chat", "leaderboard", etc.). Can be null or empty string if not used.</param>
        </member>
        <member name="M:Best.WebSockets.WebSocket.#ctor(System.Uri,System.String,System.String,Best.WebSockets.Extensions.IExtension[])">
            <summary>
            Creates a WebSocket instance from the given uri, protocol and origin.
            </summary>
            <param name="uri">The uri of the WebSocket server</param>
            <param name="origin">Servers that are not intended to process input from any web page but only for certain sites SHOULD verify the |Origin| field is an origin they expect.
            If the origin indicated is unacceptable to the server, then it SHOULD respond to the WebSocket handshake with a reply containing HTTP 403 Forbidden status code.</param>
            <param name="protocol">The application-level protocol that the client want to use(eg. "chat", "leaderboard", etc.). Can be null or empty string if not used.</param>
            <param name="extensions">Optional <see cref="T:Best.WebSockets.Extensions.IExtension"/> implementations</param>
        </member>
        <member name="M:Best.WebSockets.WebSocket.Open">
            <summary>
            Start the opening process.
            </summary>
            <remarks>It's a non-blocking call. To get notified when the WebSocket instance is considered open and can send/receive, use the <see cref="F:Best.WebSockets.WebSocket.OnOpen"/> event.</remarks>
        </member>
        <member name="M:Best.WebSockets.WebSocket.Send(System.String)">
            <summary>
            It will send the given textual message to the remote server.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.Send(System.Byte[])">
            <summary>
            It will send the given binary message to the remote server.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.Send(System.Byte[],System.UInt64,System.UInt64)">
            <summary>
            It will send the given binary message to the remote server.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.SendAsBinary(Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment)">
            <summary>
            Will send the data in one or more binary frame and takes ownership over it calling BufferPool.Release when the data sent.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.SendAsText(Best.HTTP.Shared.PlatformSupport.Memory.BufferSegment)">
            <summary>
            Will send data as a text frame and takes owenership over the memory region releasing it to the BufferPool as soon as possible.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.Close">
            <summary>
            It will initiate the closing of the connection to the server.
            </summary>
        </member>
        <member name="M:Best.WebSockets.WebSocket.Close(Best.WebSockets.WebSocketStatusCodes,System.String)">
            <summary>
            It will initiate the closing of the connection to the server sending the given code and message.
            </summary>
        </member>
        <member name="T:Best.WebSockets.WebSocketStatusCodes">
            <summary>
            <see href="http://tools.ietf.org/html/rfc6455#section-7.4.1"/>
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.NormalClosure">
            <summary>
            Indicates a normal closure, meaning that the purpose for which the connection was established has been fulfilled.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.GoingAway">
            <summary>
            Indicates that an endpoint is "going away", such as a server going down or a browser having navigated away from a page.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.ProtocolError">
            <summary>
            Indicates that an endpoint is terminating the connection due to a protocol error.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.WrongDataType">
            <summary>
            Indicates that an endpoint is terminating the connection because it has received a type of data it cannot accept
            (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.Reserved">
            <summary>
            Reserved. The specific meaning might be defined in the future.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.NoStatusCode">
            <summary>
            A reserved value and 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 no status code was actually present.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.ClosedAbnormally">
            <summary>
            A reserved value and 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 the connection was closed abnormally, e.g., without sending or receiving a Close control frame.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.DataError">
            <summary>
            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 (e.g., non-UTF-8 [RFC3629] data within a text message).
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.PolicyError">
            <summary>
            Indicates that an endpoint is terminating the connection because it has received a message that violates its policy.
            This is a generic status code that can be returned when there is no other more suitable status code (e.g., 1003 or 1009) or if there is a need to hide specific details about the policy.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.TooBigMessage">
            <summary>
            Indicates that an endpoint is terminating the connection because it has received a message that is too big for it to process.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.ExtensionExpected">
            <summary>
            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.
            The list of extensions that are needed SHOULD appear in the /reason/ part of the Close frame. Note that this status code is not used by the server, because it can fail the WebSocket handshake instead.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.WrongRequest">
            <summary>
            Indicates that a server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.
            </summary>
        </member>
        <member name="F:Best.WebSockets.WebSocketStatusCodes.TLSHandshakeError">
            <summary>
            A reserved value and 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 the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).
            </summary>
        </member>
        <member name="T:UnitySourceGeneratedAssemblyMonoScriptTypes_v1.MonoScriptData">
            <summary>
            Data is UTF-8 encoded strings
            </summary>
        </member>
    </members>
</doc>
