RMI - создать поток на сервере для обслуживания клиента - PullRequest
0 голосов
/ 08 января 2011

Я разрабатываю приложение с использованием rmi, которое позволяет клиенту входить в систему, выполнять некоторые задачи и выходить из системы.Я знаю, что каждый клиент считается одним потоком, когда он вызывает метод на сервере, однако все потоки клиентов обращаются к одному и тому же объекту, созданному на сервере.Итак, теперь я хочу, чтобы для каждого клиента был успешно выполнен вход в систему, создан новый поток (и новый объект, который используется только одним клиентом, тоже связан), поток завершается при выходе из клиента.Следовательно, каждый клиент имеет свой собственный объект сервера для работы.

Большое спасибо.

Приветствия

1 Ответ

2 голосов
/ 10 января 2011

Я знаю, что каждый клиент считается как один поток, когда он вызывает метод Сервер

Это не правильно. Отношения между клиентами и серверными потоками в RMI не определены.

В любом случае вам не нужен поток для каждого клиента. Вам нужен удаленный объект для каждого клиента. Это работа для шаблона Session:

public interface Login extends Remote
{
  Session login(String credentials) throws RemoteException;
}

public interface Session extends Remote
{
  // Your API here
}

Пусть ваш объект реализации Login возвращает новый объект реализации Session для каждого клиента.

...