Still getting random connection losses. I think it may have to do with the way I set up ACK, ACK_LOW, and PING commands.

This commit is contained in:
Manevolent
2018-08-13 18:18:49 -04:00
parent f041820020
commit e4e1b5b4fe
3 changed files with 91 additions and 84 deletions
@@ -351,7 +351,7 @@ public abstract class AbstractTeamspeakClientSocket
Pair<Integer, Integer> counter;
switch (header.getType()) {
case ACK:
/*case ACK:
counter = new Pair<>(
((PacketBody6Ack)packet.getBody()).getPacketId(),
remoteSendCounter.get(PacketBodyType.ACK).getGeneration(
@@ -374,7 +374,7 @@ public abstract class AbstractTeamspeakClientSocket
((PacketBody5Pong) packet.getBody()).getPacketId()
)
);
break;
break;*/
case INIT1:
counter = new Pair<>(101, 0);
break;
@@ -189,7 +189,7 @@ public class LocalTeamspeakClientSocket
header.read(buffer);
Ts3Debugging.debug("[NETWORK] READ" +
Ts3Debugging.debug("[NETWORK] READ " + header.getType() +
" id=" + header.getPacketId() +
" len=" + packet.getLength() +
" from " + packet.getSocketAddress());
@@ -214,10 +214,10 @@ public class LocalTeamspeakClientSocket
else if (remote == null)
throw new IOException(new NullPointerException("remote"));
Ts3Debugging.debug("[NETWORK] WRITE id=" + packet.getHeader().getPacketId() + " len=" +
packet.getDatagram().getLength()
+ " to " +
remote.toString());
Ts3Debugging.debug("[NETWORK] WRITE " + packet.getHeader().getType() +
" id=" + packet.getHeader().getPacketId() +
" len=" + packet.getDatagram().getLength() +
" to " + remote.toString());
packet.getDatagram().setSocketAddress(remote);
@@ -28,130 +28,137 @@ public class ServerConnectionTest {
identity.improveSecurity(10);
client.setIdentity(identity);
client.setIdentity(identity);
client.setNickname("Hello from Java");
client.setNickname("Hello from Java");
client.setOption("client.hwid", "JAVAJAVAJAVA");
client.setOption("client.hwid", "JAVAJAVAJAVA");
client.connect(
new InetSocketAddress(
"ts.teamlixo.net",
9987
),
null,
10000L
);
client.connect(
new InetSocketAddress(
"ts.teamlixo.net",
9987
),
null,
10000L
);
client.addListener(new TS3Listener() {
@Override
public void onTextMessage(TextMessageEvent e) {
client.addListener(new TS3Listener() {
@Override
public void onTextMessage(TextMessageEvent e) {
}
}
@Override
public void onClientJoin(ClientJoinEvent e) {
@Override
public void onClientJoin(ClientJoinEvent e) {
}
}
@Override
public void onClientLeave(ClientLeaveEvent e) {
@Override
public void onClientLeave(ClientLeaveEvent e) {
}
}
@Override
public void onServerEdit(ServerEditedEvent e) {
@Override
public void onServerEdit(ServerEditedEvent e) {
}
}
@Override
public void onChannelEdit(ChannelEditedEvent e) {
@Override
public void onChannelEdit(ChannelEditedEvent e) {
}
}
@Override
public void onChannelDescriptionChanged(ChannelDescriptionEditedEvent e) {
@Override
public void onChannelDescriptionChanged(ChannelDescriptionEditedEvent e) {
}
}
@Override
public void onClientMoved(ClientMovedEvent e) {
@Override
public void onClientMoved(ClientMovedEvent e) {
}
}
@Override
public void onChannelCreate(ChannelCreateEvent e) {
@Override
public void onChannelCreate(ChannelCreateEvent e) {
}
}
@Override
public void onChannelDeleted(ChannelDeletedEvent e) {
@Override
public void onChannelDeleted(ChannelDeletedEvent e) {
}
}
@Override
public void onChannelMoved(ChannelMovedEvent e) {
@Override
public void onChannelMoved(ChannelMovedEvent e) {
}
}
@Override
public void onChannelPasswordChanged(ChannelPasswordChangedEvent e) {
@Override
public void onChannelPasswordChanged(ChannelPasswordChangedEvent e) {
}
}
@Override
public void onChannelList(ChannelListEvent e) {
@Override
public void onChannelList(ChannelListEvent e) {
}
}
@Override
public void onPrivilegeKeyUsed(PrivilegeKeyUsedEvent e) {
@Override
public void onPrivilegeKeyUsed(PrivilegeKeyUsedEvent e) {
}
}
@Override
public void onChannelGroupList(ChannelGroupListEvent e) {
@Override
public void onChannelGroupList(ChannelGroupListEvent e) {
}
}
@Override
public void onServerGroupList(ServerGroupListEvent e) {
@Override
public void onServerGroupList(ServerGroupListEvent e) {
}
}
@Override
public void onClientNeededPermissions(ClientNeededPermissionsEvent e) {
@Override
public void onClientNeededPermissions(ClientNeededPermissionsEvent e) {
}
}
@Override
public void onClientChannelGroupChanged(ClientChannelGroupChangedEvent e) {
@Override
public void onClientChannelGroupChanged(ClientChannelGroupChangedEvent e) {
}
}
@Override
public void onClientChanged(ClientUpdatedEvent e) {
@Override
public void onClientChanged(ClientUpdatedEvent e) {
}
}
@Override
public void onDisconnected(DisconnectedEvent e) {
@Override
public void onDisconnected(DisconnectedEvent e) {
}
}
@Override
public void onChannelSubscribed(ChannelSubscribedEvent e) {
@Override
public void onChannelSubscribed(ChannelSubscribedEvent e) {
}
});
}
});
assertEquals(client.getState(), ClientConnectionState.CONNECTED);
assertEquals(client.getState(), ClientConnectionState.CONNECTED);
client.subscribeAll();
client.subscribeAll();
client.listClients();
try {
Thread.sleep(10000L);
while (client.isConnected()) {
for (Client c : client.listClients()) {
client.getClientInfo(c.getId());
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}