Archived
1
0
Fork 0

Shard cleanup part 1

This commit is contained in:
flash 2017-11-13 11:38:12 +01:00
parent b39def528d
commit 75e7e29b0a

View file

@ -23,13 +23,8 @@ namespace Maki.Gateway
/// <summary> /// <summary>
/// Websocket container /// Websocket container
/// </summary> /// </summary>
private WebSocket webSocket; private WebSocket WebSocket;
/// <summary>
/// Active gateway version
/// </summary>
private int gatewayVersion = Discord.GATEWAY_VERSION;
/// <summary> /// <summary>
/// Interval at which heartbeats are sent /// Interval at which heartbeats are sent
/// </summary> /// </summary>
@ -167,7 +162,7 @@ namespace Maki.Gateway
if (!e.IsText) if (!e.IsText)
return; return;
//Console.WriteLine(e.Data.Replace(client.Token, new string('*', client.Token.Length))); Console.WriteLine(e.Data.Replace(client.Token, new string('*', client.Token.Length)));
OnSocketMessage?.Invoke(this, e.Data); OnSocketMessage?.Invoke(this, e.Data);
GatewayPayload payload = JsonConvert.DeserializeObject<GatewayPayload>(e.Data); GatewayPayload payload = JsonConvert.DeserializeObject<GatewayPayload>(e.Data);
@ -352,7 +347,6 @@ namespace Maki.Gateway
#region State #region State
case GatewayEvent.READY: case GatewayEvent.READY:
GatewayReady ready = payload.DataAs<GatewayReady>(); GatewayReady ready = payload.DataAs<GatewayReady>();
gatewayVersion = ready.Version;
session = ready.Session; session = ready.Session;
OnReady?.Invoke(this, ready); OnReady?.Invoke(this, ready);
break; break;
@ -393,11 +387,11 @@ namespace Maki.Gateway
Token = client.Token, Token = client.Token,
Compress = false, Compress = false,
LargeThreshold = 250, LargeThreshold = 250,
Shard = new int[2] { Id, client.ShardClient.ShardCount }, Shard = new int[] { Id, client.ShardClient.ShardCount },
Properties = new GatewayIdentificationProperties { Properties = new GatewayIdentificationProperties {
OperatingSystem = @"windows", OperatingSystem = "windows",
Browser = @"Maki", Browser = "Maki",
Device = @"Maki", Device = "Maki",
Referrer = string.Empty, Referrer = string.Empty,
ReferringDomain = string.Empty, ReferringDomain = string.Empty,
} }
@ -441,17 +435,17 @@ namespace Maki.Gateway
/// </summary> /// </summary>
public void Connect() public void Connect()
{ {
webSocket = new WebSocket($"{client.Gateway}?v={gatewayVersion}&encoding=json"); WebSocket = new WebSocket($"{client.Gateway}?v={Discord.GATEWAY_VERSION}&encoding=json");
// make wss not log anything on its own // make wss not log anything on its own
webSocket.Log.Output = (LogData logData, string path) => { }; WebSocket.Log.Output = (LogData logData, string path) => { };
webSocket.OnOpen += WebSocket_OnOpen; WebSocket.OnOpen += WebSocket_OnOpen;
webSocket.OnClose += WebSocket_OnClose; WebSocket.OnClose += WebSocket_OnClose;
webSocket.OnError += WebSocket_OnError; WebSocket.OnError += WebSocket_OnError;
webSocket.OnMessage += WebSocket_OnMessage; WebSocket.OnMessage += WebSocket_OnMessage;
webSocket.Connect(); WebSocket.Connect();
} }
/// <summary> /// <summary>
@ -461,8 +455,8 @@ namespace Maki.Gateway
{ {
heartbeatHandler.Stop(); heartbeatHandler.Stop();
if (webSocket.ReadyState != WebSocketState.Closed) if (WebSocket.ReadyState != WebSocketState.Closed)
webSocket?.Close(CloseStatusCode.Normal); WebSocket?.Close(CloseStatusCode.Normal);
} }
/// <summary> /// <summary>
@ -472,20 +466,11 @@ namespace Maki.Gateway
/// <param name="data">Data to serialise and send</param> /// <param name="data">Data to serialise and send</param>
public void Send<T>(T data) public void Send<T>(T data)
{ {
/*Console.WriteLine( string json = JsonConvert.SerializeObject(data, typeof(T), new JsonSerializerSettings());
JsonConvert.SerializeObject(
data,
typeof(T),
new JsonSerializerSettings()
).Replace(client.Token, new string('*', client.Token.Length)));*/
webSocket.Send( Console.WriteLine(json.Replace(client.Token, new string('*', client.Token.Length)));
JsonConvert.SerializeObject(
data, WebSocket.Send(json);
typeof(T),
new JsonSerializerSettings()
)
);
} }
/// <summary> /// <summary>