Я делаю обертку 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:
}
}
Предполагается, что она отправляется с интервалом, ноон отправляет его только один раз. Там нет ошибок.