myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> WebModule, RusHub | Модуль для встроенного web-сервера

Теги
Нет тегов для показа
Jaska
сообщение 28.2.2010, 16:42
Сообщение #1


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




Имя: WebModule
Версия: 0.1
Минимальная версия хаба и lua-плагина: RusHub 2.1.3 LuaScripts 1.14
Описание: Модуль для встроенного веб-сервера. Парсит полученные данные, формируются таблицы.
Вызов модуля: require"web"
Функции модуля:

Web.GetEnv(sData) - забирает данные полученные в функции OnWebData и формирует таблицы
Web.OnWebData(WebID, tServer, tGet) - функция подгружает скрипты для обработки и отдачи веб-сервером.

Путь до папки со скриптами загружаемые веб-сервером: \www (корневая директория, в которой содержится RusHub.exe)

Прикрепленный файл  1.jpg ( 70.47 килобайт ) Кол-во скачиваний: 225


Это тестовая версия модуля, крайне не рекомендуется использовать на работающих хабах. Выложил для отладки
Прикрепленный файл  libs.zip ( 2.18 килобайт ) Кол-во скачиваний: 33


Спасибо сказали:
Go to the top of the page
+Quote Post
Nickolya
сообщение 28.2.2010, 17:46
Сообщение #2


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Молодец Влади. Что с 1 взгляда еще надо доделать: парсинг в массивы GET и POST, и еще самое важное замечание - в начале того что отправляет веб-сервер должны быть заголовки, отделяемые от контента пустой строкой, на сколько я знаю они обязательны. Попробуй покопаться с отладочными SendToAll в моих творениях на эту тему, там все есть big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 28.2.2010, 17:49
Сообщение #3


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Хорошая работа.
Поясню как этим пользоваться. Пишем и запускаем скрипт:

Код
require"web"

function OnWebData(WebID, sData)
  return Web.OnWebData(WebID, Web.GetEnv(sData))
end


После этого уже можно браузером входит.


Спасибо сказали:
Go to the top of the page
+Quote Post
Jaska
сообщение 1.3.2010, 2:14
Сообщение #4


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




Цитата(Nickolya @ 28.2.2010, 19:46) *
Молодец Влади. Что с 1 взгляда еще надо доделать: парсинг в массивы GET и POST, и еще самое важное замечание - в начале того что отправляет веб-сервер должны быть заголовки, отделяемые от контента пустой строкой, на сколько я знаю они обязательны. Попробуй покопаться с отладочными SendToAll в моих творениях на эту тему, там все есть big_smile.gif


Массив GET уже формируется, посмотри повнимательнее, насчет заголовков хз, я парсил как раз все что выводил SendToAll, хром этот веб-сервер почему-то вообще плохо воспринимает (ошибка 324 если не ошибаюсь) есть еще некоторые нюансы в формировании массива Server которые нужно исправить, а вот массив POST конечно необходимо заполнять. У меня уже готовая веб-морда для хаба, однако есть у нее одна проблема, данные передаются методом GET и похоже из-за этого все что после пробела "теряется"
Go to the top of the page
+Quote Post
Nickolya
сообщение 1.3.2010, 12:43
Сообщение #5


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Заголовки отправляет браузер, ты их и парсишь, а заголовки есть еще и в ответе браузеру до тела самой страницы, а хромик любит хорошие сервера что работают по документациям. Удачи в разработке, нужная штука как никак, надеюсь работает она быстро!
Go to the top of the page
+Quote Post
Setuper
сообщение 1.3.2010, 12:46
Сообщение #6


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Клиенту не отсылаются бинарные данные. Например картинки. Чувствую что должна быть определённая структура отправляемого сообщения для картинок.
Go to the top of the page
+Quote Post
Nickolya
сообщение 1.3.2010, 12:57
Сообщение #7


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Для картинки отправляется заголовок Content-Type: тут_тип_данных
Для JPGи к примеру будет
Цитата
Content-Type: image/jpg
А вообще ответ сервера выглядит примерно так (это наш форум такое отправляет big_smile.gif тело страницы я написал сам для наглядности):
Код
HTTP/1.1 200 OK
Server: nginx/0.5.33
Date: Mon, 01 Mar 2010 09:56:00 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/5.2.4-2ubuntu5
Set-Cookie: session_id=0fffb2dabc4079d55874a47231ea0ee2; path=/; httponly

<html>
<head>
</head>
<body>
</body>
</html>


Спасибо сказали:
Go to the top of the page
+Quote Post
fixx
сообщение 1.3.2010, 14:28
Сообщение #8


МЕДВЕД =)
****

Группа: Пользователи
Сообщений: 187
Регистрация: 6.8.2008
Пользователь №: 332
Спасибо сказали: 4 раза




что-то не совсем понял, как этим пользоваться. Вернее совсем не понял. big_smile.gif
404 он мне выдает. Все значения в таблице none, кроме DOCUMENT_ROOT: тут указан путь до папки www - чего я только туда не пихал, и хтмл и переделанную хтмл в lua (за пример взял 404.lua)...
Ну и как всем этим добром распорядиться?
Go to the top of the page
+Quote Post
Setuper
сообщение 1.3.2010, 14:59
Сообщение #9


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




На самом деле это экспериментальный модуль. В папке www нужно создать файл index.lua, и используя язык lua формировать и отсылать клиенту ответ на его запрос. Исполнение данного сценария выполнено в простой Lua загрузке, что не очень удобно.
Ещё много чего нужно сделать, а пока многое что не правильно работает в принципе.

Мы хотим добиться использования lua со стороны сервера вместо php.
Наиболее приемлемый вариант тут: http://mydc.ru/topic3007.html однако он использует luasocket, а текущий модуль работает на встроенном веб сервере, что в разы быстрее при минимальной нагрузке на сервер. Посмотрев что необходимо для перевода скрипта Ника для работы на встроенном веб-сервере, действительно убедился в том, что необходима функция, возвращающая ip адрес клиента. Реализую эту функцию в ближайшее время.

Просто замечательная находка использовать конструкцию вида:
Код
<?lua ... ?>
Сравниваем с конструкцией php:
Код
<?php ... ?>

Переходим с php на lua big_smile.gif
Go to the top of the page
+Quote Post
Nickolya
сообщение 1.3.2010, 15:15
Сообщение #10


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




В деловом общении, да и вообще по-дружески лучше Ник или Николя, можно просто Н, но это отступление, как-то не любится мне "Коля". Не сочтите за замечание, это лишь просьба.
Парсер я сейчас еще больше извратил, версия 0.2 уже готова, я лишь хотел перед выходом ее в свет еще что-то доделать к скрипту, а именно связку с сторонними скриптами для их настройки, т.е. написать модуль, но пока не имею возможности. Если выйдет веб-сервер с определением IP то я переделаю веб-конфиг под него.
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: WebModule
От темы с ID: 3149
0 Jaska 3 980 1.3.2010, 2:14 Посл. сообщение: Jaska
No New Posts От: WebModule
От темы с ID: 3149
-1 -- 4 020 -- Посл. сообщение: --

 



RSS Сейчас: 23.11.2024, 4:58