DRb метод доступа

Я пишу простую распределенную систему в DRb.

У меня есть все узлы и один сервер для начальной загрузки. На этом сервере у меня есть несколько методов, таких как "offer_peer", "start_service" и "stop_service".

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

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

Как я могу это сделать? Как я могу помешать сверстникам остановить сервис?
Если я поставлю сервисные методы как приватные, я не смогу вызвать их из строки cmd.

1 ответ

Решение

Это то, что я получил.

Thread.current['DRb']['client'].peeraddr

Это возвращает небольшой массив с 4 элементами. первый - это протокол, второй - порт, третий - хост (имя), а четвертый - адрес (такой же, как хост, если нет имени).

Спасибо Брайану Кэндлеру из http://www.ruby-forum.com/topic/1962357

Другие вопросы по тегам