Browse Source

Added opcode enums

tags/docs-0.9
RogueException 9 years ago
parent
commit
13d397a0dc
2 changed files with 38 additions and 13 deletions
  1. +21
    -7
      src/Discord.Net/Net/WebSockets/DataWebSocket.cs
  2. +17
    -6
      src/Discord.Net/Net/WebSockets/VoiceWebSocket.cs

+ 21
- 7
src/Discord.Net/Net/WebSockets/DataWebSocket.cs View File

@@ -7,8 +7,21 @@ using System.Threading.Tasks;
namespace Discord.Net.WebSockets namespace Discord.Net.WebSockets
{ {
internal partial class DataWebSocket : WebSocket internal partial class DataWebSocket : WebSocket
{
private int _lastSeq;
{
public enum OpCodes : byte
{
Dispatch = 0,
Heartbeat = 1,
Identify = 2,
StatusUpdate = 3,
VoiceStateUpdate = 4,
VoiceServerPing = 5,
Resume = 6,
Redirect = 7,
RequestGuildMembers = 8
}

private int _lastSeq;


public string SessionId => _sessionId; public string SessionId => _sessionId;
private string _sessionId; private string _sessionId;
@@ -74,10 +87,11 @@ namespace Discord.Net.WebSockets
var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json); var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json);
if (msg.Sequence.HasValue) if (msg.Sequence.HasValue)
_lastSeq = msg.Sequence.Value; _lastSeq = msg.Sequence.Value;
switch (msg.Operation)

var opCode = (OpCodes)msg.Operation;
switch (opCode)
{ {
case 0:
case OpCodes.Dispatch:
{ {
JToken token = msg.Payload as JToken; JToken token = msg.Payload as JToken;
if (msg.Type == "READY") if (msg.Type == "READY")
@@ -96,7 +110,7 @@ namespace Discord.Net.WebSockets
EndConnect(); EndConnect();
} }
break; break;
case 7: //Redirect
case OpCodes.Redirect:
{ {
var payload = (msg.Payload as JToken).ToObject<RedirectEvent>(_client.DataSocketSerializer); var payload = (msg.Payload as JToken).ToObject<RedirectEvent>(_client.DataSocketSerializer);
if (payload.Url != null) if (payload.Url != null)
@@ -110,7 +124,7 @@ namespace Discord.Net.WebSockets
break; break;
default: default:
if (_logLevel >= LogMessageSeverity.Warning) if (_logLevel >= LogMessageSeverity.Warning)
RaiseOnLog(LogMessageSeverity.Warning, $"Unknown Opcode: {msg.Operation}");
RaiseOnLog(LogMessageSeverity.Warning, $"Unknown Opcode: {opCode}");
break; break;
} }
} }


+ 17
- 6
src/Discord.Net/Net/WebSockets/VoiceWebSocket.cs View File

@@ -17,6 +17,16 @@ namespace Discord.Net.WebSockets
{ {
internal partial class VoiceWebSocket : WebSocket internal partial class VoiceWebSocket : WebSocket
{ {
public enum OpCodes : byte
{
Identify = 0,
SelectProtocol = 1,
Ready = 2,
Heartbeat = 3,
SessionDescription = 4,
Speaking = 5
}

private const int MaxOpusSize = 4000; private const int MaxOpusSize = 4000;
private const string EncryptedMode = "xsalsa20_poly1305"; private const string EncryptedMode = "xsalsa20_poly1305";
private const string UnencryptedMode = "plain"; private const string UnencryptedMode = "plain";
@@ -437,9 +447,10 @@ namespace Discord.Net.WebSockets
{ {
await base.ProcessMessage(json).ConfigureAwait(false); await base.ProcessMessage(json).ConfigureAwait(false);
var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json); var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json);
switch (msg.Operation)
var opCode = (OpCodes)msg.Operation;
switch (opCode)
{ {
case 2: //READY
case OpCodes.Ready:
{ {
if (_state != (int)WebSocketState.Connected) if (_state != (int)WebSocketState.Connected)
{ {
@@ -476,7 +487,7 @@ namespace Discord.Net.WebSockets
} }
} }
break; break;
case 3: //PONG
case OpCodes.Heartbeat:
{ {
long time = EpochTime.GetMilliseconds(); long time = EpochTime.GetMilliseconds();
var payload = (long)msg.Payload; var payload = (long)msg.Payload;
@@ -484,7 +495,7 @@ namespace Discord.Net.WebSockets
//TODO: Use this to estimate latency //TODO: Use this to estimate latency
} }
break; break;
case 4: //SESSION_DESCRIPTION
case OpCodes.SessionDescription:
{ {
var payload = (msg.Payload as JToken).ToObject<JoinServerEvent>(_client.VoiceSocketSerializer); var payload = (msg.Payload as JToken).ToObject<JoinServerEvent>(_client.VoiceSocketSerializer);
_secretKey = payload.SecretKey; _secretKey = payload.SecretKey;
@@ -492,7 +503,7 @@ namespace Discord.Net.WebSockets
EndConnect(); EndConnect();
} }
break; break;
case 5:
case OpCodes.Speaking:
{ {
var payload = (msg.Payload as JToken).ToObject<IsTalkingEvent>(_client.VoiceSocketSerializer); var payload = (msg.Payload as JToken).ToObject<IsTalkingEvent>(_client.VoiceSocketSerializer);
RaiseIsSpeaking(payload.UserId, payload.IsSpeaking); RaiseIsSpeaking(payload.UserId, payload.IsSpeaking);
@@ -500,7 +511,7 @@ namespace Discord.Net.WebSockets
break; break;
default: default:
if (_logLevel >= LogMessageSeverity.Warning) if (_logLevel >= LogMessageSeverity.Warning)
RaiseOnLog(LogMessageSeverity.Warning, $"Unknown Opcode: {msg.Operation}");
RaiseOnLog(LogMessageSeverity.Warning, $"Unknown Opcode: {opCode}");
break; break;
} }
} }


Loading…
Cancel
Save