private async Task SendMessageAsync <T>(GatewayOperation op, GatewayEvent?e, T payload)
        {
            var frame = new GatewaySocketFrame <T>
            {
                Operation = op,
                Event     = e,
                Payload   = payload,
            };

            await _socket !.SendMessageAsync(frame);
        }
 private async Task SendMessageAsync <T>(GatewayOperation op, T payload)
 => await SendMessageAsync(op, null, payload);