Android Wi-Fi одноранговый игровой сервер с веб-сокетом - PullRequest
0 голосов
/ 10 марта 2020

Я работаю над многопользовательской (не более 2 игроков) android игрой, в которой каждый по очереди. Устройства двух игроков должны сначала соединиться друг с другом, используя только Wi-Fi (одноранговый): одно будет хостом, а другое - клиентом. Я успешно установил соединение, следуя документации android, но в остальном я не уверен, верны ли мои рассуждения:

Я знаю, что одно устройство будет одновременно служить хостом и клиентом (а другое один клиент, конечно), и я создал эти два класса, которые используют сокеты для связи друг с другом и в своих собственных потоках. Приведенный ниже код является частью моего проекта, просто чтобы получить представление. Как только соединение установлено, эти два класса запускаются.

public class Server extends Thread {
    ServerSocket server;
    Socket socket;

    run() {
        socket = server.accept();
    }
}
public class Client extends Thread { 
    Socket socket;

    run() {
        socket.connect(...);
    }
}

Мне было интересно следующее: можно ли создать отдельный класс, который будет представлять мой игровой сервер (GameServer), размещенный на сервере хост-устройство с другим номером порта и служить промежуточным звеном между моим сервером и моим клиентом и связываться с ними двунаправленным способом (просто с помощью веб-сокета)?

сервер <=====> игровой сервер <=====> клиент

...