Bug pembedaan sesi berdasarkan IP atau perangkat Session keyed by IP or machine ID
ID penyebab pt-session-key · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Pengembangan klien (Tim Pengembang Game)
Jika server atau server perantara membedakan koneksi berdasarkan IP atau ID perangkat, dua klien di PC yang sama (IP publik yang sama) dikenali sebagai satu orang.
Mengapa Tabel sesi dibuat dengan kunci IP atau IP + ID perangkat → Akibatnya Data klien kedua menimpa sesi pertama atau tercampur dengannya → Di layar Di satu klien NPC tidak terlihat, sementara klien lainnya disconnect atau menerima data orang lain
Hanya satu klien di PC yang sama, Satu rumah, Wilayah/ISP tertentu
Kapan
Tepat setelah login atau maintenance
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Pengembangan klien (Tim Pengembang Game)
Tugas Tim Pengembang Game
Server: bedakan setiap koneksi dengan token sesi yang unik, baik di server maupun server perantara, dan pastikan ini diperbaiki karena beberapa orang di rumah yang sama (di balik NAT router) serta pengguna jaringan seluler yang satu IP-nya dibagi ISP ke banyak pelanggan (CGNAT) juga mengalami masalah yang sama. Klien: pakai token sesi yang diterima terpisah untuk setiap klien yang dijalankan.
Di grafik
Hanya sebagian yang tinggi · Jumlah sesi bersamaan dari IP publik yang sama, jumlah sesi yang tertimpa
Yang diperiksa
Catat di log server dan server perantara kunci yang dipakai untuk mencari sesi, token sesi, serta IP dan port klien, lalu periksa apakah sesi yang ada berubah saat koneksi kedua dari IP yang sama masuk. Gejala bisa direproduksi dengan menyalakan dua klien berturut-turut di PC yang sama
Cocok jika
Begitu klien kedua terhubung, alamat atau data karakter sesi pertama berubah, dan disconnect yang sama juga terlihat pada pemain lain di balik router yang sama atau jaringan seluler (CGNAT)
Tidak cocok jika
Dua sesi dari IP yang sama tetap terpisah dengan token yang berbeda: bukan penyebab ini. Kedua proses memakai port lokal yang sama: bentrok port UDP tetap