This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,549 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
using BestHTTP.Decompression.Zlib;
using BestHTTP.JSON;
using BestHTTP.Logger;
using BestHTTP.SignalRCore.Messages;
using BestHTTP.WebSocket;
using BestHTTP.WebSocket.Extensions;
using Cpp2IlInjected;
namespace BestHTTP.SignalRCore.Transports
{
// Token: 0x020019CF RID: 6607
[Token(Token = "0x20019CF")]
internal sealed class WebSocketTransport : ITransport
{
// Token: 0x17001885 RID: 6277
// (get) Token: 0x060099F8 RID: 39416 RVA: 0x001F6EF8 File Offset: 0x001F50F8
[Token(Token = "0x17001885")]
public TransportTypes TransportType
{
[Token(Token = "0x60099F8")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "5")]
get
{
}
}
// Token: 0x17001886 RID: 6278
// (get) Token: 0x060099F9 RID: 39417 RVA: 0x001F6F08 File Offset: 0x001F5108
[Token(Token = "0x17001886")]
public TransferModes TransferMode
{
[Token(Token = "0x60099F9")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "4")]
get
{
}
}
// Token: 0x17001887 RID: 6279
// (get) Token: 0x060099FA RID: 39418 RVA: 0x001F6F18 File Offset: 0x001F5118
// (set) Token: 0x060099FB RID: 39419 RVA: 0x001F6F2C File Offset: 0x001F512C
[Token(Token = "0x17001887")]
public TransportStates State
{
[Token(Token = "0x60099FA")]
[Address(RVA = "0x40F000", Offset = "0x40E000", VA = "0x18040F000", Slot = "6")]
get
{
return this._state;
}
[Token(Token = "0x60099FB")]
[Address(RVA = "0x639BE0", Offset = "0x638BE0", VA = "0x180639BE0")]
private set
{
if (this._state != value)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = value;
if (onStateChanged != 0)
{
}
}
}
}
// Token: 0x17001888 RID: 6280
// (get) Token: 0x060099FC RID: 39420 RVA: 0x001F6F58 File Offset: 0x001F5158
// (set) Token: 0x060099FD RID: 39421 RVA: 0x001F6F6C File Offset: 0x001F516C
[Token(Token = "0x17001888")]
public string ErrorReason
{
[Token(Token = "0x60099FC")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "7")]
get;
[Token(Token = "0x60099FD")]
[Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")]
private set;
}
// Token: 0x140000C9 RID: 201
// (add) Token: 0x060099FE RID: 39422 RVA: 0x001F6F80 File Offset: 0x001F5180
// (remove) Token: 0x060099FF RID: 39423 RVA: 0x001F6FA8 File Offset: 0x001F51A8
[Token(Token = "0x140000C9")]
public event Action<TransportStates, TransportStates> OnStateChanged
{
[Token(Token = "0x60099FE")]
[Address(RVA = "0x639AA0", Offset = "0x638AA0", VA = "0x180639AA0", Slot = "8")]
[CompilerGenerated]
add
{
Action<TransportStates, TransportStates> onStateChanged;
Delegate @delegate;
do
{
onStateChanged = this.OnStateChanged;
@delegate = Delegate.Combine(onStateChanged, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != onStateChanged)
{
}
}
[Token(Token = "0x60099FF")]
[Address(RVA = "0x639B40", Offset = "0x638B40", VA = "0x180639B40", Slot = "9")]
[CompilerGenerated]
remove
{
Action<TransportStates, TransportStates> onStateChanged;
Delegate @delegate;
do
{
onStateChanged = this.OnStateChanged;
@delegate = Delegate.Remove(onStateChanged, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != onStateChanged)
{
}
}
}
// Token: 0x06009A00 RID: 39424 RVA: 0x001F6FD0 File Offset: 0x001F51D0
[Token(Token = "0x6009A00")]
[Address(RVA = "0x6399E0", Offset = "0x6389E0", VA = "0x1806399E0")]
public WebSocketTransport(HubConnection con)
{
List<Message> list = new List();
this.messages = list;
base..ctor();
this.connection = con;
TransportStates state = this._state;
if (state != TransportStates.Initial)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = (TransportStates)((ulong)0L);
if (onStateChanged != 0)
{
int num = 0;
onStateChanged(state, num);
}
}
}
// Token: 0x06009A01 RID: 39425 RVA: 0x001F7020 File Offset: 0x001F5220
[Token(Token = "0x6009A01")]
[Address(RVA = "0x638590", Offset = "0x637590", VA = "0x180638590", Slot = "10")]
void ITransport.StartConnect()
{
WebSocket webSocket7;
Delegate delegate5;
for (;;)
{
ILogger logger = HTTPManager.Logger;
WebSocket webSocket = this.webSocket;
int num = 0;
if (webSocket == 0)
{
Uri <Uri>k__BackingField = this.connection.<Uri>k__BackingField;
HubConnection hubConnection = this.connection;
if (hubConnection.<NegotiationResult>k__BackingField != num)
{
UriBuilder uriBuilder = new UriBuilder(<Uri>k__BackingField);
StringBuilder stringBuilder = new StringBuilder();
string query = <Uri>k__BackingField.Query;
StringBuilder stringBuilder2 = stringBuilder.Append(query);
string <ConnectionId>k__BackingField = this.connection.<NegotiationResult>k__BackingField.<ConnectionId>k__BackingField;
if (stringBuilder2 == 0)
{
StringBuilder stringBuilder3 = stringBuilder.Append("&id=");
string <ConnectionId>k__BackingField2 = this.connection.<NegotiationResult>k__BackingField.<ConnectionId>k__BackingField;
StringBuilder stringBuilder4 = stringBuilder3.Append(<ConnectionId>k__BackingField2);
}
int hashCode = stringBuilder.GetHashCode();
Uri uri = uriBuilder.Uri;
}
if (hubConnection.<AuthenticationProvider>k__BackingField != 0 && num < logger)
{
num += num;
num++;
}
ILogger logger2 = HTTPManager.Logger;
int hashCode2 = num.GetHashCode();
string empty = string.Empty;
IExtension[] array = new IExtension[1];
int num2 = 0;
PerMessageCompression perMessageCompression;
perMessageCompression.FieldGetter(num2, empty, empty);
perMessageCompression.<Level>k__BackingField = (CompressionLevel)((ulong)6L);
perMessageCompression.<ClientNoContextTakeover>k__BackingField = num != 0;
perMessageCompression.<ClientMaxWindowBits>k__BackingField = (int)((ulong)15L);
perMessageCompression.<ServerMaxWindowBits>k__BackingField = (int)((ulong)15L);
perMessageCompression.<MinimumDataLegthToCompress>k__BackingField = (int)((ulong)256L);
array[0] = perMessageCompression;
WebSocket webSocket2;
webSocket2.<Extensions>k__BackingField = array;
this.webSocket = webSocket2;
}
WebSocket webSocket3;
if (this.connection.<AuthenticationProvider>k__BackingField != 0)
{
webSocket3 = this.webSocket;
}
OnWebSocketOpenDelegate onOpen = webSocket3.OnOpen;
OnWebSocketOpenDelegate onWebSocketOpenDelegate;
onWebSocketOpenDelegate.method_ptr = ldftn(OnOpen);
onWebSocketOpenDelegate.method = ldftn(OnOpen);
onWebSocketOpenDelegate.m_target = this;
Delegate @delegate = Delegate.Combine(onOpen, onWebSocketOpenDelegate);
if (@delegate == 0 || @delegate != 0)
{
webSocket3.OnOpen = @delegate;
WebSocket webSocket4 = this.webSocket;
OnWebSocketMessageDelegate onMessage = webSocket4.OnMessage;
OnWebSocketMessageDelegate onWebSocketMessageDelegate;
onWebSocketMessageDelegate.method_ptr = ldftn(OnMessage);
onWebSocketMessageDelegate.method = ldftn(OnMessage);
onWebSocketMessageDelegate.m_target = this;
Delegate delegate2 = Delegate.Combine(onMessage, onWebSocketMessageDelegate);
if (delegate2 == 0 || delegate2 != 0)
{
webSocket4.OnMessage = delegate2;
WebSocket webSocket5 = this.webSocket;
OnWebSocketBinaryDelegate onBinary = webSocket5.OnBinary;
OnWebSocketBinaryDelegate onWebSocketBinaryDelegate;
onWebSocketBinaryDelegate.method_ptr = ldftn(OnBinary);
onWebSocketBinaryDelegate.method = ldftn(OnBinary);
onWebSocketBinaryDelegate.m_target = this;
Delegate delegate3 = Delegate.Combine(onBinary, onWebSocketBinaryDelegate);
if (delegate3 == 0 || delegate3 != 0)
{
webSocket5.OnBinary = delegate3;
WebSocket webSocket6 = this.webSocket;
OnWebSocketErrorDescriptionDelegate onErrorDesc = webSocket6.OnErrorDesc;
OnWebSocketErrorDescriptionDelegate onWebSocketErrorDescriptionDelegate;
onWebSocketErrorDescriptionDelegate.method_ptr = ldftn(OnError);
onWebSocketErrorDescriptionDelegate.method = ldftn(OnError);
onWebSocketErrorDescriptionDelegate.m_target = this;
Delegate delegate4 = Delegate.Combine(onErrorDesc, onWebSocketErrorDescriptionDelegate);
if (delegate4 == 0 || delegate4 != 0)
{
webSocket6.OnErrorDesc = delegate4;
webSocket7 = this.webSocket;
OnWebSocketClosedDelegate onClosed = webSocket7.OnClosed;
OnWebSocketClosedDelegate onWebSocketClosedDelegate;
onWebSocketClosedDelegate.method_ptr = ldftn(OnClosed);
onWebSocketClosedDelegate.method = ldftn(OnClosed);
onWebSocketClosedDelegate.m_target = this;
delegate5 = Delegate.Combine(onClosed, onWebSocketClosedDelegate);
if (delegate5 == 0 || delegate5 != 0)
{
break;
}
}
}
}
}
}
webSocket7.OnClosed = delegate5;
this.webSocket.Open();
if (this._state != TransportStates.Connecting)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = (TransportStates)((ulong)1L);
if (onStateChanged != 0)
{
}
}
}
// Token: 0x06009A02 RID: 39426 RVA: 0x001F7360 File Offset: 0x001F5560
[Token(Token = "0x6009A02")]
[Address(RVA = "0x638350", Offset = "0x637350", VA = "0x180638350", Slot = "12")]
void ITransport.Send(byte[] msg)
{
WebSocket webSocket = this.webSocket;
WebSocketResponse webSocketResponse = webSocket.webSocket;
if (webSocketResponse != 0 && !webSocketResponse.closed)
{
webSocket.webSocket.Send(msg);
}
}
// Token: 0x06009A03 RID: 39427 RVA: 0x001F739C File Offset: 0x001F559C
[Token(Token = "0x6009A03")]
[Address(RVA = "0x6397F0", Offset = "0x6387F0", VA = "0x1806397F0")]
private void OnOpen(WebSocket webSocket)
{
ILogger logger = HTTPManager.Logger;
IProtocol <Protocol>k__BackingField = this.connection.<Protocol>k__BackingField;
string text;
byte[] array = JsonProtocol.WithSeparator(text);
throw new NullReferenceException();
}
// Token: 0x06009A04 RID: 39428 RVA: 0x001F73CC File Offset: 0x001F55CC
[Token(Token = "0x6009A04")]
[Address(RVA = "0x6398E0", Offset = "0x6388E0", VA = "0x1806398E0")]
private string ParseHandshakeResponse(string data)
{
int num = 0;
object obj = Json.Decode(data);
if (obj != 0 && obj != 0)
{
bool flag;
if (!flag)
{
}
int hashCode = num.GetHashCode();
}
return "Couldn't parse json data: " + data;
}
// Token: 0x06009A05 RID: 39429 RVA: 0x001F7410 File Offset: 0x001F5610
[Token(Token = "0x6009A05")]
[Address(RVA = "0x638E60", Offset = "0x637E60", VA = "0x180638E60")]
private void HandleHandshakeResponse(string data)
{
int num = 0;
object obj = Json.Decode(data);
if (obj != 0 && obj != 0)
{
bool flag;
if (!flag)
{
goto IL_2F;
}
int hashCode = num.GetHashCode();
}
string text = "Couldn't parse json data: " + data;
IL_2F:
this.<ErrorReason>k__BackingField = text;
bool flag2 = string.IsNullOrEmpty(text);
TransportStates state = this._state;
if (state != TransportStates.Connected)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = TransportStates.Connected;
if (onStateChanged != 0)
{
onStateChanged(state, 2);
}
}
}
// Token: 0x06009A06 RID: 39430 RVA: 0x001F7490 File Offset: 0x001F5690
[Token(Token = "0x6009A06")]
[Address(RVA = "0x6395B0", Offset = "0x6385B0", VA = "0x1806395B0")]
private void OnMessage(WebSocket webSocket, string data)
{
int num;
do
{
num = 0;
if (this._state == TransportStates.Connecting)
{
break;
}
this.messages.Clear();
IProtocol <Protocol>k__BackingField = this.connection.<Protocol>k__BackingField;
if (num < data)
{
num += num;
num++;
}
HubConnection hubConnection = this.connection;
List<Message> list = this.messages;
hubConnection.OnMessages(list);
list += list;
ILogger logger = HTTPManager.Logger;
this.messages.Clear();
}
while (num != 0);
this.HandleHandshakeResponse(data);
}
// Token: 0x06009A07 RID: 39431 RVA: 0x001F751C File Offset: 0x001F571C
[Token(Token = "0x6009A07")]
[Address(RVA = "0x638FB0", Offset = "0x637FB0", VA = "0x180638FB0")]
private void OnBinary(WebSocket webSocket, byte[] data)
{
int num;
do
{
num = 0;
if (this._state == TransportStates.Connecting)
{
break;
}
this.messages.Clear();
IProtocol <Protocol>k__BackingField = this.connection.<Protocol>k__BackingField;
if (num < data)
{
num += num;
num++;
}
HubConnection hubConnection = this.connection;
List<Message> list = this.messages;
hubConnection.OnMessages(list);
list += list;
ILogger logger = HTTPManager.Logger;
this.messages.Clear();
}
while (num != 0);
string @string = Encoding.UTF8.GetString(data);
this.HandleHandshakeResponse(@string);
}
// Token: 0x06009A08 RID: 39432 RVA: 0x001F75C0 File Offset: 0x001F57C0
[Token(Token = "0x6009A08")]
[Address(RVA = "0x6394C0", Offset = "0x6384C0", VA = "0x1806394C0")]
private void OnError(WebSocket webSocket, string reason)
{
ILogger logger = HTTPManager.Logger;
string text = "OnError: " + reason;
this.<ErrorReason>k__BackingField = reason;
TransportStates state = this._state;
if (state != TransportStates.Failed)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = (TransportStates)((ulong)4L);
if (onStateChanged != 0)
{
onStateChanged(state, (uint)4);
}
}
}
// Token: 0x06009A09 RID: 39433 RVA: 0x001F761C File Offset: 0x001F581C
[Token(Token = "0x6009A09")]
[Address(RVA = "0x639230", Offset = "0x638230", VA = "0x180639230")]
private void OnClosed(WebSocket webSocket, ushort code, string message)
{
ILogger logger = HTTPManager.Logger;
object[] array = new object[4];
if ("OnClosed: " != 0)
{
}
array[0] = "OnClosed: ";
if (array != 0)
{
}
array[1] = array;
if (" " != 0)
{
}
array[2] = " ";
if (message != 0)
{
}
array[3] = message;
string text = string.Concat(array);
this.webSocket = (ulong)0L;
TransportStates state = this._state;
if (state != TransportStates.Closed)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = (TransportStates)((ulong)5L);
if (onStateChanged != 0)
{
onStateChanged(state, (uint)5);
}
}
}
// Token: 0x06009A0A RID: 39434 RVA: 0x001F76BC File Offset: 0x001F58BC
[Token(Token = "0x6009A0A")]
[Address(RVA = "0x6383B0", Offset = "0x6373B0", VA = "0x1806383B0", Slot = "11")]
void ITransport.StartClose()
{
ILogger logger = HTTPManager.Logger;
if (this.webSocket == (ulong)0L)
{
TransportStates state = this._state;
if (state != TransportStates.Closed)
{
Action<TransportStates, TransportStates> onStateChanged = this.OnStateChanged;
this._state = (TransportStates)((ulong)5L);
if (onStateChanged != 0)
{
onStateChanged(state, (uint)5);
return;
}
}
return;
}
TransportStates state2 = this._state;
if (state2 != TransportStates.Closing)
{
Action<TransportStates, TransportStates> onStateChanged2 = this.OnStateChanged;
this._state = (TransportStates)((ulong)3L);
if (onStateChanged2 != 0)
{
onStateChanged2(state2, (uint)3);
}
}
WebSocket webSocket = this.webSocket;
WebSocketStates <State>k__BackingField = webSocket.<State>k__BackingField;
webSocket.<State>k__BackingField = (WebSocketStates)((ulong)2L);
WebSocketResponse webSocketResponse = webSocket.webSocket;
}
// Token: 0x06009A0B RID: 39435 RVA: 0x001F7784 File Offset: 0x001F5984
[Token(Token = "0x6009A0B")]
[Address(RVA = "0x638D00", Offset = "0x637D00", VA = "0x180638D00")]
private Uri BuildUri(Uri baseUri)
{
if (this.connection.<NegotiationResult>k__BackingField != (ulong)0L)
{
UriBuilder uriBuilder = new UriBuilder(baseUri);
StringBuilder stringBuilder = new StringBuilder();
string query = baseUri.Query;
StringBuilder stringBuilder2 = stringBuilder.Append(query);
if (!string.IsNullOrEmpty(this.connection.<NegotiationResult>k__BackingField.<ConnectionId>k__BackingField))
{
StringBuilder stringBuilder3 = stringBuilder.Append("&id=");
string <ConnectionId>k__BackingField = this.connection.<NegotiationResult>k__BackingField.<ConnectionId>k__BackingField;
StringBuilder stringBuilder4 = stringBuilder3.Append(<ConnectionId>k__BackingField);
}
int hashCode = stringBuilder.GetHashCode();
return uriBuilder.Uri;
}
throw new NullReferenceException();
}
// Token: 0x04006809 RID: 26633
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006809")]
private TransportStates _state;
// Token: 0x0400680C RID: 26636
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400680C")]
private WebSocket webSocket;
// Token: 0x0400680D RID: 26637
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400680D")]
private HubConnection connection;
// Token: 0x0400680E RID: 26638
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400680E")]
private List<Message> messages;
}
}