2016-08-19 4 views
1

내 LibGDX 프로젝트에 kryonet을 사용하고 있습니다. 클라이언트가 서버에 연결할 때마다 새 연결 ID가 생성됩니다. 예 : 클라이언트 1 : ID 1. 클라이언트 2 : ID 2.Kryonet 연결 ID 제한?

클라이언트가 다시 연결되면 카운터가 계속 실행되어 이전 ID를 다시 사용하지 않는 것 같습니다. 예 : 클라이언트 1이 다시 연결됩니다 : ID 3

잠시 후 kryonet이 카운터를 재설정합니까? 또는 카운터를 재설정 할 수있는 방법이 있습니까? 잠시 동안 서버를 실행 한 후에 문제가 생길까 걱정됩니다.

+0

얼마 동안 얘기하고 있습니까? 32 비트 연결 ID 및 100 개의 요청/초를 가정하면 모든 종류의 문제가 발생하기까지 가동 시간이 1 년 이상 소요됩니다! – Eric

답변

0

나는 내 자신의 문제를 해결했지만 누군가 관심이 있다면 여기에 남겨 둘 것입니다.

나는 Kryonet의 소스를 통해 보는이를 발견 :이 값이 최대 값에 도달하면

int id = nextConnectionID++; 
if (nextConnectionID == -1) nextConnectionID = 1; 

, 그것은 최소한의 값으로 뒤집습니다. Ref : https://stackoverflow.com/a/5131206/4697327.

나는 결코 문제가 없을 것입니다.

EDIT : Kryonet은 연결이 만들어지지 않은 경우 ID를 -1로 사용합니다. nextConnectionID가 최대 32 비트를 카운트하면 최소값으로 넘기고 0으로 다시 카운트합니다. 어느 시점에서 -1을 전달합니다. 이것은 하나의 연결에 대한. 제점입니다. 부정적인 ID가있는 문제를 아직 발견하지 못했습니다.

+0

나는 이것을 Kryonets github의 문제로 게시했다 : https://github.com/EsotericSoftware/kryonet/issues/119 – kwantuM