Крутые новости про opennet!
■ Мы создали облачный проект.
Теперь за всеми изменениями вы можете наблюдать там, а так же смотреть как изменяется и улучшается код, пополняясь новыми файлами и классами.
https://ide.c9.io/krutoy242/opennet
■ Команда проекта увеличилась и появились первые пользователи.
На данный момент сеть разрабатывают Zer0Galaxy, Totoro и Krutoy.
Из пользователей - Asummonster и Trojan4ik, которые помогают найти ошибки в сети, которые раньше были не заметны.
А сейчас, пока Зеро занят IRL и opennet сервер непонятно почему повторяет сообщения аж четыре раза, расскажу как работает моя часть кода.
Внимание! Пока сеть только тестируется, и не все функции работают.
Сервер обновлений
Эта машина упрощает установку ПО для работы opennet. Например, для работы интернет-сервера нужно 4 файла и качать их в ручную было бы напряжно.
Работа сервера обновлений позволяет вписать всего 1 строку в lua на чистой машине, которая сама подключится к серверу и получит все необходимые файлы.
Но это не всё:
При использовании opennet, этот сервер будет посылать новые версии ПО, если это необходимо. То есть, после первой установки вам не придется в ручную обновлять ПО, если выйдут критические изменения.
Вместе с ПО для opennet у нас появится возможность добавлять пользовательские приложения. Например, Asummonster пишет чатик вроде аськи, Totoro с Зеро делают браузер и web-сервер. И для установки всего этого вам нужно будет всего один раз запустить установку.
Интернет сервер
Все пользователи opennet получают доступ к интернету, даже есть у них нет интернет-карты! Причем для этого не нужно будет что то делать - код создает виртуальную интернет-карту, она появляется в списке компонентов, и к ней можно обращаться как к настоящей карте. Например, без проблем работают программы wget и pastebin
На самом сервере стоит программное обеспечение, которое обрабатывает запросы и сохраняет открытые соединения в таблицу. Принимая сообщение, сервер перенаправляет его на свою настоящую интернет-карту, получает ответ и отправляет его запрашивающему. Интересно, что если функция, например internet.request() возвращает итератор, то итератор и будет возвращен клиенту.
В будущем планирую сделать получение сообщений из интернет-карты для работы, например IRC клиентов
Набросок будущего интерфейса сервера:
Скриншот небольшого компьютерного клуба, в котором и проходит тестирование сети: