Программирование на языке Ruby
Шрифт:
Клиент:
• устанавливает соединение с сервером;
• привязывает локальный объект к удаленному экземпляру сервера;
• посылает сообщения серверу и получает ответы.
Метод класса
Если порт выбирается динамически, то для получения полного URI, включающего и номер порта, можно воспользоваться методом класса
Поскольку
На стороне клиента мы вызываем метод
Следует подчеркнуть, что на стороне сервера привязка осуществляется к единственному объекту, который должен отвечать на все получаемые запросы. Если клиентов несколько, то объект должен быть безопасным относительно потоков, чтобы не оказаться в некорректном состоянии. (Для совсем простых или узкоспециализированных приложений это может быть и необязательно.)
Мы не можем вдаваться в технические детали. Но имейте в виду, что если клиент читает или изменяет внутреннее состояние удаленного объекта, то при наличии нескольких клиентов возможна интерференция. Во избежание таких неприятностей мы рекомендуем применять механизмы синхронизации, например класс
Скажем хотя бы несколько слов о безопасности. Ведь не всегда желательно, чтобы с вашим сервером мог соединяться кто угодно. Помешать им пытаться вы не можете, зато можете сделать такие попытки безуспешными.
В программе
Приведем пример. Для создания нового списка ACL мы воспользуемся классом
Второй (необязательный) параметр метода
Первый параметр
Первая пара в этом примере, строго говоря, излишня, но проясняет смысл всей конструкции.
А как используются ACL? Метод
Теперь, после запуска сервиса любой неавторизованный запрос на соединение приведет к исключению
Это, конечно, не все, что можно сказать о библиотеке
20.2. Пример: эмуляция биржевой ленты
В этом примере сервер публикует в сети биржевые котировки акций. К серверу может обратиться любой клиент, желающий узнать, сколько сейчас стоит его пакет.
Но мы добавили одну тонкость. Не желая следить за малейшими колебаниями цен, мы реализовали модуль
Сначала рассмотрим модуль
Моров. Том 1 и Том 2
1. Моров
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Избранное
рейтинг книги
Барону наплевать на правила
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Первый среди равных. Книга XIII
13. Первый среди Равных
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Скандальные разводы
Научно-образовательная:
история
рейтинг книги
Жрец Хаоса. Книга III
3. Зов пустоты
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Масоны
Проза:
русская классическая проза
рейтинг книги
Чужак
1. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Координаты чудес (сборник)
Шедевры фантастики
Фантастика:
научная фантастика
рейтинг книги
На границе империй. Том 8
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Верность
Приключения:
исторические приключения
морские приключения
рейтинг книги
Рассвет русского царства 3
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
рейтинг книги
(сборник)
рейтинг книги
Время, Люди, Власть (Книга 1)
Проза:
русская классическая проза
рейтинг книги