You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.4 KiB
41 lines
1.4 KiB
8 months ago
|
#if !BESTHTTP_DISABLE_WEBSOCKET && (!UNITY_WEBGL || UNITY_EDITOR)
|
||
|
|
||
|
using BestHTTP.WebSocket.Frames;
|
||
|
|
||
|
namespace BestHTTP.WebSocket.Extensions
|
||
|
{
|
||
|
public interface IExtension
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// This is the first pass: here we can add headers to the request to initiate an extension negotiation.
|
||
|
/// </summary>
|
||
|
/// <param name="request"></param>
|
||
|
void AddNegotiation(HTTPRequest request);
|
||
|
|
||
|
/// <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>
|
||
|
bool ParseNegotiation(WebSocketResponse resp);
|
||
|
|
||
|
/// <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>
|
||
|
byte GetFrameHeader(WebSocketFrame writer, byte inFlag);
|
||
|
|
||
|
/// <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>
|
||
|
byte[] Encode(WebSocketFrame writer);
|
||
|
|
||
|
/// <summary>
|
||
|
/// This function can be used the decode the server-sent data.
|
||
|
/// </summary>
|
||
|
byte[] Decode(byte header, byte[] data, int length);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|