oh dear
This commit is contained in:
@@ -0,0 +1,648 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using BestHTTP.Decompression.Zlib;
|
||||
using BestHTTP.Extensions;
|
||||
using BestHTTP.Logger;
|
||||
using BestHTTP.WebSocket.Extensions;
|
||||
using BestHTTP.WebSocket.Frames;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.WebSocket
|
||||
{
|
||||
// Token: 0x020018C9 RID: 6345
|
||||
[Token(Token = "0x20018C9")]
|
||||
public sealed class WebSocket
|
||||
{
|
||||
// Token: 0x170017AA RID: 6058
|
||||
// (get) Token: 0x06009504 RID: 38148 RVA: 0x001EA0F0 File Offset: 0x001E82F0
|
||||
// (set) Token: 0x06009505 RID: 38149 RVA: 0x001EA104 File Offset: 0x001E8304
|
||||
[Token(Token = "0x170017AA")]
|
||||
public WebSocketStates State
|
||||
{
|
||||
[Token(Token = "0x6009504")]
|
||||
[Address(RVA = "0x42D5E0", Offset = "0x42C3E0", VA = "0x18042D5E0")]
|
||||
get;
|
||||
[Token(Token = "0x6009505")]
|
||||
[Address(RVA = "0x495D50", Offset = "0x494B50", VA = "0x180495D50")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x170017AB RID: 6059
|
||||
// (get) Token: 0x06009506 RID: 38150 RVA: 0x001EA118 File Offset: 0x001E8318
|
||||
[Token(Token = "0x170017AB")]
|
||||
public bool IsOpen
|
||||
{
|
||||
[Token(Token = "0x6009506")]
|
||||
[Address(RVA = "0x1C48120", Offset = "0x1C46F20", VA = "0x181C48120")]
|
||||
get
|
||||
{
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
if (webSocketResponse == 0)
|
||||
{
|
||||
}
|
||||
return !webSocketResponse.closed;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170017AC RID: 6060
|
||||
// (get) Token: 0x06009507 RID: 38151 RVA: 0x001EA13C File Offset: 0x001E833C
|
||||
[Token(Token = "0x170017AC")]
|
||||
public int BufferedAmount
|
||||
{
|
||||
[Token(Token = "0x6009507")]
|
||||
[Address(RVA = "0x1C48100", Offset = "0x1C46F00", VA = "0x181C48100")]
|
||||
get
|
||||
{
|
||||
return this.webSocket._bufferedAmount;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170017AD RID: 6061
|
||||
// (get) Token: 0x06009508 RID: 38152 RVA: 0x001EA15C File Offset: 0x001E835C
|
||||
// (set) Token: 0x06009509 RID: 38153 RVA: 0x001EA170 File Offset: 0x001E8370
|
||||
[Token(Token = "0x170017AD")]
|
||||
public bool StartPingThread
|
||||
{
|
||||
[Token(Token = "0x6009508")]
|
||||
[Address(RVA = "0x49E540", Offset = "0x49D340", VA = "0x18049E540")]
|
||||
get;
|
||||
[Token(Token = "0x6009509")]
|
||||
[Address(RVA = "0x756A50", Offset = "0x755850", VA = "0x180756A50")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x170017AE RID: 6062
|
||||
// (get) Token: 0x0600950A RID: 38154 RVA: 0x001EA184 File Offset: 0x001E8384
|
||||
// (set) Token: 0x0600950B RID: 38155 RVA: 0x001EA198 File Offset: 0x001E8398
|
||||
[Token(Token = "0x170017AE")]
|
||||
public int PingFrequency
|
||||
{
|
||||
[Token(Token = "0x600950A")]
|
||||
[Address(RVA = "0x495080", Offset = "0x493E80", VA = "0x180495080")]
|
||||
get;
|
||||
[Token(Token = "0x600950B")]
|
||||
[Address(RVA = "0x52EC20", Offset = "0x52DA20", VA = "0x18052EC20")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x170017AF RID: 6063
|
||||
// (get) Token: 0x0600950C RID: 38156 RVA: 0x001EA1AC File Offset: 0x001E83AC
|
||||
// (set) Token: 0x0600950D RID: 38157 RVA: 0x001EA1C0 File Offset: 0x001E83C0
|
||||
[Token(Token = "0x170017AF")]
|
||||
public TimeSpan CloseAfterNoMesssage
|
||||
{
|
||||
[Token(Token = "0x600950C")]
|
||||
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40")]
|
||||
get;
|
||||
[Token(Token = "0x600950D")]
|
||||
[Address(RVA = "0x3F7210", Offset = "0x3F6010", VA = "0x1803F7210")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x170017B0 RID: 6064
|
||||
// (get) Token: 0x0600950E RID: 38158 RVA: 0x001EA1D4 File Offset: 0x001E83D4
|
||||
// (set) Token: 0x0600950F RID: 38159 RVA: 0x001EA1E8 File Offset: 0x001E83E8
|
||||
[Token(Token = "0x170017B0")]
|
||||
public HTTPRequest InternalRequest
|
||||
{
|
||||
[Token(Token = "0x600950E")]
|
||||
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")]
|
||||
get;
|
||||
[Token(Token = "0x600950F")]
|
||||
[Address(RVA = "0x460F90", Offset = "0x45FD90", VA = "0x180460F90")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x170017B1 RID: 6065
|
||||
// (get) Token: 0x06009510 RID: 38160 RVA: 0x001EA1FC File Offset: 0x001E83FC
|
||||
// (set) Token: 0x06009511 RID: 38161 RVA: 0x001EA210 File Offset: 0x001E8410
|
||||
[Token(Token = "0x170017B1")]
|
||||
public IExtension[] Extensions
|
||||
{
|
||||
[Token(Token = "0x6009510")]
|
||||
[Address(RVA = "0x3F63E0", Offset = "0x3F51E0", VA = "0x1803F63E0")]
|
||||
get;
|
||||
[Token(Token = "0x6009511")]
|
||||
[Address(RVA = "0x409C60", Offset = "0x408A60", VA = "0x180409C60")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x170017B2 RID: 6066
|
||||
// (get) Token: 0x06009512 RID: 38162 RVA: 0x001EA224 File Offset: 0x001E8424
|
||||
[Token(Token = "0x170017B2")]
|
||||
public int Latency
|
||||
{
|
||||
[Token(Token = "0x6009512")]
|
||||
[Address(RVA = "0x1C48160", Offset = "0x1C46F60", VA = "0x181C48160")]
|
||||
get
|
||||
{
|
||||
return this.webSocket.<Latency>k__BackingField;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009513 RID: 38163 RVA: 0x001EA244 File Offset: 0x001E8444
|
||||
[Token(Token = "0x6009513")]
|
||||
[Address(RVA = "0x1C47680", Offset = "0x1C46480", VA = "0x181C47680")]
|
||||
public WebSocket(Uri uri)
|
||||
{
|
||||
string empty = string.Empty;
|
||||
IExtension[] array = new IExtension[1];
|
||||
int num = 0;
|
||||
PerMessageCompression perMessageCompression;
|
||||
perMessageCompression.FieldGetter(num, empty, empty);
|
||||
perMessageCompression.<Level>k__BackingField = (CompressionLevel)((ulong)6L);
|
||||
perMessageCompression.<ClientNoContextTakeover>k__BackingField = false;
|
||||
perMessageCompression.<ClientMaxWindowBits>k__BackingField = (int)((ulong)15L);
|
||||
perMessageCompression.<ServerMaxWindowBits>k__BackingField = (int)((ulong)15L);
|
||||
perMessageCompression.<MinimumDataLegthToCompress>k__BackingField = (int)((ulong)256L);
|
||||
array[0] = perMessageCompression;
|
||||
this.Extensions = array;
|
||||
}
|
||||
|
||||
// Token: 0x06009514 RID: 38164 RVA: 0x001EA2B4 File Offset: 0x001E84B4
|
||||
[Token(Token = "0x6009514")]
|
||||
[Address(RVA = "0x1C47830", Offset = "0x1C46630", VA = "0x181C47830")]
|
||||
public WebSocket(Uri uri, string origin, string protocol, params IExtension[] extensions)
|
||||
{
|
||||
int num = 0;
|
||||
base.FieldGetter(num, origin, protocol);
|
||||
bool flag = HTTPProtocolFactory.IsSecureProtocol(uri);
|
||||
string text = "ws";
|
||||
if (flag)
|
||||
{
|
||||
text = "wss";
|
||||
}
|
||||
if (uri.Port != -1)
|
||||
{
|
||||
int port = uri.Port;
|
||||
}
|
||||
bool flag2 = text.Equals("wss", StringComparison.OrdinalIgnoreCase);
|
||||
object[] array = new object[6];
|
||||
if (text != 0)
|
||||
{
|
||||
}
|
||||
array[0] = text;
|
||||
if ("://" != 0)
|
||||
{
|
||||
}
|
||||
array[1] = "://";
|
||||
string host = uri.Host;
|
||||
if (host != 0)
|
||||
{
|
||||
}
|
||||
array[2] = host;
|
||||
if (":" != 0)
|
||||
{
|
||||
}
|
||||
array[3] = ":";
|
||||
int num2;
|
||||
if (num2 != 0)
|
||||
{
|
||||
}
|
||||
array[4] = num2;
|
||||
string requestPathAndQueryURL = uri.GetRequestPathAndQueryURL();
|
||||
if (requestPathAndQueryURL != 0)
|
||||
{
|
||||
}
|
||||
array[5] = requestPathAndQueryURL;
|
||||
Uri uri2 = new Uri(string.Concat(array));
|
||||
this.PingFrequency = (int)((ulong)1000L);
|
||||
TimeSpan timeSpan;
|
||||
this.CloseAfterNoMesssage = timeSpan;
|
||||
OnRequestFinishedDelegate onRequestFinishedDelegate = new OnRequestFinishedDelegate(this.OnInternalRequestCallback);
|
||||
HTTPRequest httprequest = new HTTPRequest(uri2, onRequestFinishedDelegate);
|
||||
this.InternalRequest = httprequest;
|
||||
OnRequestFinishedDelegate onRequestFinishedDelegate2 = new OnRequestFinishedDelegate(this.OnInternalRequestUpgraded);
|
||||
httprequest.OnUpgraded = onRequestFinishedDelegate2;
|
||||
if (!HTTPProtocolFactory.IsSecureProtocol(uri2) && uri2.Port != 80 && HTTPProtocolFactory.IsSecureProtocol(uri2) && uri2.Port != 443)
|
||||
{
|
||||
HTTPRequest httprequest2 = this.<InternalRequest>k__BackingField;
|
||||
string host2 = uri2.Host;
|
||||
int port2 = uri2.Port;
|
||||
string text2 = host2 + ":" + port2;
|
||||
}
|
||||
HTTPRequest httprequest3 = this.<InternalRequest>k__BackingField;
|
||||
string host3 = uri2.Host;
|
||||
httprequest3.SetHeader("Host", host3);
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Upgrade", "websocket");
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Connection", "Upgrade");
|
||||
HTTPRequest httprequest4 = this.<InternalRequest>k__BackingField;
|
||||
object[] array2 = new object[4];
|
||||
array2[0] = this;
|
||||
HTTPRequest httprequest5 = this.<InternalRequest>k__BackingField;
|
||||
if (httprequest5 != 0)
|
||||
{
|
||||
}
|
||||
array2[1] = httprequest5;
|
||||
array2[2] = uri2;
|
||||
object obj = new object();
|
||||
if (obj != 0)
|
||||
{
|
||||
}
|
||||
array2[3] = obj;
|
||||
string secKey = this.GetSecKey(array2);
|
||||
httprequest4.SetHeader("Sec-WebSocket-Key", secKey);
|
||||
if (secKey == 0)
|
||||
{
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Origin", origin);
|
||||
}
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Sec-WebSocket-Version", "13");
|
||||
if (secKey == 0)
|
||||
{
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Sec-WebSocket-Protocol", protocol);
|
||||
}
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Cache-Control", "no-cache");
|
||||
this.<InternalRequest>k__BackingField.SetHeader("Pragma", "no-cache");
|
||||
HTTPRequest httprequest6 = this.<InternalRequest>k__BackingField;
|
||||
this.Extensions = 0;
|
||||
httprequest6.DisableCache = true;
|
||||
this.<InternalRequest>k__BackingField.<DisableRetry>k__BackingField = true;
|
||||
this.<InternalRequest>k__BackingField.<TryToMinimizeTCPLatency>k__BackingField = true;
|
||||
Proxy <Proxy>k__BackingField = HTTPManager.<Proxy>k__BackingField;
|
||||
if (<Proxy>k__BackingField != 0 && <Proxy>k__BackingField != 0)
|
||||
{
|
||||
HTTPProxy httpproxy;
|
||||
this.<InternalRequest>k__BackingField.<Proxy>k__BackingField = httpproxy;
|
||||
}
|
||||
HTTPManager.Setup();
|
||||
}
|
||||
|
||||
// Token: 0x06009515 RID: 38165 RVA: 0x001EA5A8 File Offset: 0x001E87A8
|
||||
[Token(Token = "0x6009515")]
|
||||
[Address(RVA = "0x1C46A00", Offset = "0x1C45800", VA = "0x181C46A00")]
|
||||
private void OnInternalRequestCallback(HTTPRequest req, HTTPResponse resp)
|
||||
{
|
||||
int num = 0;
|
||||
HTTPRequestStates httprequestStates = req.<State>k__BackingField;
|
||||
if (req != 0)
|
||||
{
|
||||
if (req != 0 && req != 0 && req != 0 && httprequestStates != HTTPRequestStates.Queued)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (req.<Exception>k__BackingField != 0)
|
||||
{
|
||||
Exception innerException = req.<Exception>k__BackingField.InnerException;
|
||||
string text2;
|
||||
string text = "Request Finished with Error! " + text2;
|
||||
}
|
||||
string empty = string.Empty;
|
||||
string text3 = "Request Finished with Error! " + empty;
|
||||
}
|
||||
if (!resp.IsSuccess)
|
||||
{
|
||||
int <StatusCode>k__BackingField = resp.<StatusCode>k__BackingField;
|
||||
if (<StatusCode>k__BackingField != 101)
|
||||
{
|
||||
string <Message>k__BackingField = resp.<Message>k__BackingField;
|
||||
string dataAsText = resp.DataAsText;
|
||||
string text4 = string.Format("Request Finished Successfully, but the server sent an error. Status Code: {0}-{1} Message: {2}", <StatusCode>k__BackingField, <Message>k__BackingField, dataAsText);
|
||||
if ((int)this.<State>k__BackingField == num && text4 != 0)
|
||||
{
|
||||
OnWebSocketClosedDelegate onClosed = this.OnClosed;
|
||||
if (onClosed == 0)
|
||||
{
|
||||
goto IL_112;
|
||||
}
|
||||
uint num2;
|
||||
onClosed(this, (ushort)num2, "Closed while opening");
|
||||
}
|
||||
OnWebSocketErrorDelegate onError = this.OnError;
|
||||
if (onError != 0)
|
||||
{
|
||||
Exception <Exception>k__BackingField = req.<Exception>k__BackingField;
|
||||
onError(this, <Exception>k__BackingField);
|
||||
}
|
||||
OnWebSocketErrorDescriptionDelegate onErrorDesc = this.OnErrorDesc;
|
||||
if (onErrorDesc != 0)
|
||||
{
|
||||
onErrorDesc(this, text4);
|
||||
}
|
||||
if (this.OnError == num && this.OnErrorDesc == num)
|
||||
{
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
}
|
||||
IL_112:
|
||||
if ((req.isKeepAlive ? 1 : 0) != num || resp == 0 || resp != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
ILogger logger2 = HTTPManager.Logger;
|
||||
string text6;
|
||||
string text5 = string.Format("Request finished. Status Code: {0} Message: {1}", text6, resp);
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009516 RID: 38166 RVA: 0x001EA6F8 File Offset: 0x001E88F8
|
||||
[Token(Token = "0x6009516")]
|
||||
[Address(RVA = "0x1C46D30", Offset = "0x1C45B30", VA = "0x181C46D30")]
|
||||
private void OnInternalRequestUpgraded(HTTPRequest req, HTTPResponse resp)
|
||||
{
|
||||
int num = 0;
|
||||
if (resp != 0)
|
||||
{
|
||||
}
|
||||
this.webSocket = num;
|
||||
WebSocketResponse webSocketResponse6;
|
||||
WaitCallback waitCallback;
|
||||
if (num != 0)
|
||||
{
|
||||
IExtension[] array = this.<Extensions>k__BackingField;
|
||||
if (array != 0)
|
||||
{
|
||||
int length = array.Length;
|
||||
if (num < length)
|
||||
{
|
||||
if (array[num] != 0 && array == 0)
|
||||
{
|
||||
this.<Extensions>k__BackingField[0] = num;
|
||||
}
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
IExtension[] array2 = this.<Extensions>k__BackingField;
|
||||
int num2 = 0;
|
||||
array2[0] = num2;
|
||||
num++;
|
||||
}
|
||||
}
|
||||
this.<State>k__BackingField = (WebSocketStates)((ulong)1L);
|
||||
if (this.OnOpen != (ulong)0L)
|
||||
{
|
||||
this.OnOpen(this);
|
||||
ILogger logger2 = HTTPManager.Logger;
|
||||
}
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
Action<WebSocketResponse, string> action = delegate(WebSocketResponse ws, string msg)
|
||||
{
|
||||
OnWebSocketMessageDelegate onMessage = this.OnMessage;
|
||||
if (onMessage != 0)
|
||||
{
|
||||
onMessage(this, msg);
|
||||
return;
|
||||
}
|
||||
};
|
||||
webSocketResponse.OnText = action;
|
||||
WebSocketResponse webSocketResponse2 = this.webSocket;
|
||||
Action<WebSocketResponse, byte[]> action2 = delegate(WebSocketResponse ws, byte[] bin)
|
||||
{
|
||||
OnWebSocketBinaryDelegate onBinary = this.OnBinary;
|
||||
if (onBinary != 0)
|
||||
{
|
||||
onBinary(this, bin);
|
||||
return;
|
||||
}
|
||||
};
|
||||
webSocketResponse2.OnBinary = action2;
|
||||
WebSocketResponse webSocketResponse3 = this.webSocket;
|
||||
Action<WebSocketResponse, ushort, string> action3 = delegate(WebSocketResponse ws, ushort code, string msg)
|
||||
{
|
||||
OnWebSocketClosedDelegate onClosed = this.OnClosed;
|
||||
this.<State>k__BackingField = (WebSocketStates)((ulong)3L);
|
||||
if (onClosed != 0)
|
||||
{
|
||||
onClosed(this, code, msg);
|
||||
return;
|
||||
}
|
||||
};
|
||||
webSocketResponse3.OnClosed = action3;
|
||||
if (this.OnIncompleteFrame != (ulong)0L)
|
||||
{
|
||||
WebSocketResponse webSocketResponse4 = this.webSocket;
|
||||
Action<WebSocketResponse, WebSocketFrameReader> action4 = delegate(WebSocketResponse ws, WebSocketFrameReader frame)
|
||||
{
|
||||
if (this.OnIncompleteFrame != 0)
|
||||
{
|
||||
byte[] <Data>k__BackingField = frame.<Data>k__BackingField;
|
||||
}
|
||||
};
|
||||
webSocketResponse4.OnIncompleteFrame = action4;
|
||||
}
|
||||
if (this.<StartPingThread>k__BackingField)
|
||||
{
|
||||
WebSocketResponse webSocketResponse5 = this.webSocket;
|
||||
int num3 = Math.Max(this.<PingFrequency>k__BackingField, 100);
|
||||
webSocketResponse5.StartPinging(num3);
|
||||
}
|
||||
webSocketResponse6 = this.webSocket;
|
||||
waitCallback = new WaitCallback(webSocketResponse6.ReceiveThreadFunc);
|
||||
bool flag = ThreadPool.QueueUserWorkItem(waitCallback);
|
||||
return;
|
||||
}
|
||||
if (waitCallback.original_method_info != 0)
|
||||
{
|
||||
}
|
||||
if (waitCallback.data != 0 && webSocketResponse6.Stream != 0)
|
||||
{
|
||||
bool canRead = webSocketResponse6.Stream.CanRead;
|
||||
DelegateData data = waitCallback.data;
|
||||
}
|
||||
waitCallback.method_ptr = (IntPtr)((ulong)3L);
|
||||
}
|
||||
|
||||
// Token: 0x06009517 RID: 38167 RVA: 0x001EA8B0 File Offset: 0x001E8AB0
|
||||
[Token(Token = "0x6009517")]
|
||||
[Address(RVA = "0x1C472A0", Offset = "0x1C460A0", VA = "0x181C472A0")]
|
||||
public void Open()
|
||||
{
|
||||
if (!this.requestSent)
|
||||
{
|
||||
if (this.<Extensions>k__BackingField != (ulong)0L)
|
||||
{
|
||||
int num = 0;
|
||||
IExtension[] array = this.<Extensions>k__BackingField;
|
||||
int length = array.Length;
|
||||
if (num < length)
|
||||
{
|
||||
if (array[num] != 0)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
}
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
}
|
||||
HTTPRequest httprequest = this.<InternalRequest>k__BackingField.Send();
|
||||
this.requestSent = true;
|
||||
this.<State>k__BackingField = (WebSocketStates)((ulong)0L);
|
||||
return;
|
||||
}
|
||||
InvalidOperationException ex = new InvalidOperationException("Open already called! You can't reuse this WebSocket instance!");
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x06009518 RID: 38168 RVA: 0x001EA940 File Offset: 0x001E8B40
|
||||
[Token(Token = "0x6009518")]
|
||||
[Address(RVA = "0x1C47430", Offset = "0x1C46230", VA = "0x181C47430")]
|
||||
public void Send(string message)
|
||||
{
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
if (webSocketResponse != 0 && !webSocketResponse.closed)
|
||||
{
|
||||
this.webSocket.Send(message);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009519 RID: 38169 RVA: 0x001EA974 File Offset: 0x001E8B74
|
||||
[Token(Token = "0x6009519")]
|
||||
[Address(RVA = "0x1C47570", Offset = "0x1C46370", VA = "0x181C47570")]
|
||||
public void Send(byte[] buffer)
|
||||
{
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
if (webSocketResponse != 0 && !webSocketResponse.closed)
|
||||
{
|
||||
this.webSocket.Send(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600951A RID: 38170 RVA: 0x001EA9A8 File Offset: 0x001E8BA8
|
||||
[Token(Token = "0x600951A")]
|
||||
[Address(RVA = "0x1C47490", Offset = "0x1C46290", VA = "0x181C47490")]
|
||||
public void Send(byte[] buffer, ulong offset, ulong count)
|
||||
{
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
if (webSocketResponse != 0 && !webSocketResponse.closed)
|
||||
{
|
||||
this.webSocket.Send(buffer, offset, count);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600951B RID: 38171 RVA: 0x001EA9E0 File Offset: 0x001E8BE0
|
||||
[Token(Token = "0x600951B")]
|
||||
[Address(RVA = "0x1C47510", Offset = "0x1C46310", VA = "0x181C47510")]
|
||||
public void Send(WebSocketFrame frame)
|
||||
{
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
if (webSocketResponse != 0 && !webSocketResponse.closed)
|
||||
{
|
||||
this.webSocket.Send(frame);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600951C RID: 38172 RVA: 0x001EAA14 File Offset: 0x001E8C14
|
||||
[Token(Token = "0x600951C")]
|
||||
[Address(RVA = "0x1C46540", Offset = "0x1C45340", VA = "0x181C46540")]
|
||||
public void Close()
|
||||
{
|
||||
WebSocketStates webSocketStates = this.<State>k__BackingField;
|
||||
this.<State>k__BackingField = (WebSocketStates)((ulong)2L);
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
}
|
||||
|
||||
// Token: 0x0600951D RID: 38173 RVA: 0x001EAA5C File Offset: 0x001E8C5C
|
||||
[Token(Token = "0x600951D")]
|
||||
[Address(RVA = "0x1C46600", Offset = "0x1C45400", VA = "0x181C46600")]
|
||||
public void Close(ushort code, string message)
|
||||
{
|
||||
WebSocketResponse webSocketResponse = this.webSocket;
|
||||
if (webSocketResponse != 0 && !webSocketResponse.closed)
|
||||
{
|
||||
this.webSocket.Close(code, message);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600951E RID: 38174 RVA: 0x001EAA90 File Offset: 0x001E8C90
|
||||
[Token(Token = "0x600951E")]
|
||||
[Address(RVA = "0x1C46670", Offset = "0x1C45470", VA = "0x181C46670")]
|
||||
public static byte[] EncodeCloseData(ushort code, string message)
|
||||
{
|
||||
int num;
|
||||
byte[] array;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
object obj = Encoding.UTF8.Clone();
|
||||
byte[] bytes = BitConverter.GetBytes(code);
|
||||
int length = bytes.Length;
|
||||
int num2 = 0;
|
||||
Array.Reverse(bytes, num2, length);
|
||||
BufferPoolMemoryStream bufferPoolMemoryStream;
|
||||
int num3 = bufferPoolMemoryStream.ReadByte();
|
||||
Encoding utf = Encoding.UTF8;
|
||||
int num4 = bufferPoolMemoryStream.ReadByte();
|
||||
array = bufferPoolMemoryStream.ToArray();
|
||||
if (bufferPoolMemoryStream != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
while (num != 0);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600951F RID: 38175 RVA: 0x001EAB1C File Offset: 0x001E8D1C
|
||||
[Token(Token = "0x600951F")]
|
||||
[Address(RVA = "0x1C46880", Offset = "0x1C45680", VA = "0x181C46880")]
|
||||
private string GetSecKey(object[] from)
|
||||
{
|
||||
byte[] array = new byte[16];
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
int num3 = 0;
|
||||
int length = from.Length;
|
||||
if (num < length)
|
||||
{
|
||||
from[num3].Finalize();
|
||||
int num4 = 0;
|
||||
byte[] array2;
|
||||
int length2 = array2.Length;
|
||||
if (num4 < length2)
|
||||
{
|
||||
int length3 = array.Length;
|
||||
if (num2 < length3)
|
||||
{
|
||||
num2++;
|
||||
num4++;
|
||||
}
|
||||
}
|
||||
num3++;
|
||||
}
|
||||
return Convert.ToBase64String(array);
|
||||
}
|
||||
|
||||
// Token: 0x040065A7 RID: 26023
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40065A7")]
|
||||
public OnWebSocketOpenDelegate OnOpen;
|
||||
|
||||
// Token: 0x040065A8 RID: 26024
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40065A8")]
|
||||
public OnWebSocketMessageDelegate OnMessage;
|
||||
|
||||
// Token: 0x040065A9 RID: 26025
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40065A9")]
|
||||
public OnWebSocketBinaryDelegate OnBinary;
|
||||
|
||||
// Token: 0x040065AA RID: 26026
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40065AA")]
|
||||
public OnWebSocketClosedDelegate OnClosed;
|
||||
|
||||
// Token: 0x040065AB RID: 26027
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40065AB")]
|
||||
public OnWebSocketErrorDelegate OnError;
|
||||
|
||||
// Token: 0x040065AC RID: 26028
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40065AC")]
|
||||
public OnWebSocketErrorDescriptionDelegate OnErrorDesc;
|
||||
|
||||
// Token: 0x040065AD RID: 26029
|
||||
[FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x40065AD")]
|
||||
public OnWebSocketIncompleteFrameDelegate OnIncompleteFrame;
|
||||
|
||||
// Token: 0x040065AE RID: 26030
|
||||
[FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x40065AE")]
|
||||
private bool requestSent;
|
||||
|
||||
// Token: 0x040065AF RID: 26031
|
||||
[FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x40065AF")]
|
||||
private WebSocketResponse webSocket;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user