Почему моя задача таймера не работает для моей оболочки Discord API? - PullRequest
0 голосов
/ 04 октября 2019

Я делаю обертку API для Discord и пытаюсь отправить полезную нагрузку пульса с интервалом, указанным в полезной нагрузке hello.

private void handleReceive(GatewayReceive gatewayReceive)
{
    PayloadReceiveOpcode opcode=PayloadReceiveOpcode.getInstance(gatewayReceive.op);
    if(opcode==null)
    {
        //TODO Add throws here or something
        return;
    }
    switch(opcode)
    {
        case DISPATCH:
            try
            {
                System.out.println(gatewayReceive.t);
                client.getEventManager().handle(gatewayReceive.t,gatewayReceive.d);
            }
            catch(InvocationTargetException|IllegalAccessException e)
            {
                e.printStackTrace();
            }
            break;
        case HEARTBEAT:
            break;
        case RECONNECT:
            break;
        case INVALID_SESSION:
            break;
        case HELLO:
            new Timer().scheduleAtFixedRate(new TimerTask(){
                @Override
                public void run()
                {
                    send(new GatewaySend(PayloadSendOpcode.HEARTBEAT,"null"));
                }
            },0,gatewayReceive.d.get("heartbeat_interval").getAsInt());
            break;
       case HEARTBEAT_ACK:

    }
}

Предполагается, что она отправляется с интервалом, ноон отправляет его только один раз. Там нет ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...