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