Jump to content
Korean Random
b0rg

Разработчикам: А на хрена козе Dokan?

Recommended Posts

Надо отметить, что вы, ребята, сделали колоссальную и очень полезную для общества работу по xvm-stat моду :)

 

К сожалению ощутить полезность оленеметра в полной мере у меня не вышло, т.к. установить dokan на Win7 x64 с первого раза не получилось. И тут я озаботился вопросом: а на хрена, собственно, козе dokan? Ведь устанавливать неподписанный низкоуровневый системный драйвер только для того, что бы поднять вебсервер на локалхосте, несколько противоречит идеологии .NET.

 

Покопавшись в кодезах Xvm-stat у меня сложилась картина того, что там происходит (поправьте меня где я не прав):

  • Низкоуровневый dokan поднимает вебсервер с файловой системы
  • wot.Server наследует DokanNet, и через Json открывает функции GetFileInformation, ReadFile
  • заодно wot.Server поднимает маленький in memory cache, чтоб два раза не вставать.
  • далее wot.Server работает как proxy между flash и xvm-stat серверами.

Основная работа происходит в GetFileInformation, что парсит JSON и обрабатывает @LOG, @LOGSTAT, @VAR etc. Назначение ReadFile я немного не понял.

 

Т.е. что бы убрать dokan нам достаточно поднять вебсервер на локалхосте и сделать один JSON сервис, что будет поддерживать xvm протокол. На мой взгляд, это можно сделать:

  • IIS
  • любой embedded web server

IIS немного тяжеловат для установки, поэтому можно использовать любой маленький вебсервер для .NET. Консольный CassiniDev очень замечательно подходит http://cassinidev.codeplex.com

 

У меня счас как раз есть немного времени и я могу слелать этот JSON сервис на CassiniDev.

 

Вопросы

  1. насколько тяжело будет поменять flash, что бы он не использовал dokan?
     
  2. Есть ли юнит тесты для flash <-> dokan протокола, и если нет, о насколько тяжело их будет сделать?
     
  3. Стоит ли с этим заморачиваться?

Заморачиваться, думаю стоит, т.к. далеко не у каждого юзера получается установить dokan, когда есть гораздо более легкие решения.

 

Что думаете?

Share this post


Link to post

Short link
Share on other sites

ScaleForm (Flash движок в WoT) умеет только обращаться к ФС и только по относительным путям. Сетевые подключения невозможны.

 

http://gameware.autodesk.com/documents/gfx_4.0_flash_support.pdf

XMLSocket No

Был бы HTTP, мы бы так не извращались. :)

Share this post


Link to post

Short link
Share on other sites

Пипец, и нафига было так много писать. Лучше бы сам в вопросе разобрался.

 

Низкоуровневый dokan поднимает вебсервер с файловой системы

Собственно, ошибка с этого места. "вебсервер с файловой системы" - это, собственно, и есть то, для чего нужен Dokan. Какой веб-сервер умеет мониторить запросы к ФС?

Edited by sirmax

Share this post


Link to post

Short link
Share on other sites

Пипец, и нафига было так много писать. Лучше бы сам в вопросе разобрался.

 

Собственно, ошибка с этого места. "вебсервер с файловой системы" - это, собственно, и есть то, для чего нужен Dokan. Какой веб-сервер умеет мониторить запросы к ФС?

 

Мне показалось, что писать "на фига собственно dokan" будет неуважительно по отношению к разработчикам. Но разработчикам как водицца не угодить :)

Share this post


Link to post

Short link
Share on other sites
Основная работа происходит в GetFileInformation, что парсит JSON и обрабатывает @LOG, @LOGSTAT, @VAR etc. Назначение ReadFile я немного не понял.

GetFileInformation отрабатывает, когда ось пытается прочитать свойства файла. Ну там размер, пермишены и прочее. В итоге имя файла передается в этот метод, в котором оно уже интерпретируется как команда. А результат выполнения команды отдается наружу как раз через ReadFile.

 

В итоге, с точки зрения операционки, всё сводится к чтению файла.

Запусти xvm-stat, с командной строки зайди в res_mods и напиши, например:

type ".stat\@get_version"

Share this post


Link to post

Short link
Share on other sites

Мне показалось, что писать "на фига собственно dokan" будет неуважительно по отношению к разработчикам. Но разработчикам как водицца не угодить :)

О да, мы такие. :)

 

Кстати, кроме Dokan предлагали еще один возможный вариант решения - отлавливать обращения к ФС по тому же принципу, как работает procmon. Но я не разбирался с ним, наверняка какие-то системные евенты надо отлавливать в привилегированном режиме. Плюс ответ как-то пересылать обратно - это вводить какой-то буферный файлик, следить чтобы ФС его не закэшировала между запросами, а из Flash читать два файла вместо одного - один запрос, второй - буферный файл. Еще как-то придумывать синхронизацию запрос-ответ. В общем, все это сложно, так что пока лучше Dokan ничего нет.

 

И вообще, рекомендую всем срочно переходить на Linux, там xvm-stat уже тоже работает и без Dokan'а (спасибо arzakon). :)

Edited by sirmax

Share this post


Link to post

Short link
Share on other sites

О да, мы такие. :)

 

И вообще, рекомендую всем срочно переходить на Linux, там xvm-stat уже тоже работает и без Dokan'а (спасибо arzakon). :)

 

Я и сам такой :)

 

Погуглил немного на тему ScaleForm + .net + Dokan, но ничего путного не нашлось. Stackoverflow тоже ничего путного не говорит. Видимо придется побольше потрахаться с доканом на 64 битных виндах, с наскока не получилось, надо подольше покрутить.

 

Но флешевский фреймворк, который не может достучаться до веба, меня честно сказать удивил. С другой стороны, открытый веб в геймдевовском фреймворке тоже не очень хорошо. Словом щщастья нет.

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Погуглил немного на тему ScaleForm + .net + Dokan, но ничего путного не нашлось. Stackoverflow тоже ничего путного не говорит. Видимо придется побольше потрахаться с доканом на 64 битных виндах, с наскока не получилось, надо подольше покрутить.

Так работает нормально на W7x64 - у меня такая же. Ставишь инсталлятор с сайта Dokan и все, без танцев и бубнов.

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites
без танцев и бубнов.

Абсолютно верно, не убавить не прибавить. (и еще на трёх моих системах Win7 x64)

Share this post


Link to post

Short link
Share on other sites

Абсолютно верно, не убавить не прибавить. (и еще на трёх моих системах Win7 x64)

 

Может руки кривые, может торопился, Я качнул архив с батничком с сайта dokan. Первый раз его поставил, на меня винды накричали, что мол-де драйвер не подписанный. Ну я их перевел в тестовый режим, что бы можно было неподписанные драйвера ставить. Только после этого все равно не заработало.

 

Теперь, чувствую, надо снести старый (где-то я тут uninstall батничек видел), а потом попробовать воткнуть инсталлер. Может и получится.

 

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

Edited by b0rg
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

@b0rg, Не помню чтоб мне Винда писала про неподписаный драйвер, (хотя эта фича у мну работает, у мну Оригинальный дистрибутив и не каких твиков, даже Контроль учетных записей пашет)

Ща проверил, нет сообщений о неподписынных дровах.

Win 7 x64 SP1 U + много (почти все) обновления.

 

Ах да ставил на чистую систему.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Может руки кривые, может торопился, Я качнул архив с батничком с сайта dokan.
 

Из третьего вытекает и первое и второе. Какой ещё "архив с батничком на сайте dokan"? У них вполне себе цивильный инсталятор, и ссылки в нашей документации указаны на него же.

 

Если бы вы скачали и установили его, никаких проблем не было бы.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

Из третьего вытекает и первое и второе. Какой ещё "архив с батничком на сайте dokan"? У них вполне себе цивильный инсталятор, и ссылки в нашей документации указаны на него же.

 

Если бы вы скачали и установили его, никаких проблем не было бы.

Ну я качнул Xvm, смотрю ему нужен докан. На хрена, думаю, козе докан - полез форумы читать, как умная Маша, блин. На форумах пишут - качните новый докан.zip и его ставьте с геморроями. Ну я и скачал докан.зип с геморроями.

 

На днях переделал dokan_install.cmd в dokan_uninstall.cmd, и синсталлил версию докана из нормального инсталлятора все встало без проблем. Хотя может потому, что винда уже в тестовом режиме.

 

Теперь смотрю на статистику в полной мере. Но она тоже не радует... :)

 

В общем, многие знания - многие печали.

 

 

Share this post


Link to post

Short link
Share on other sites

Теперь смотрю на статистику в полной мере. Но она тоже не радует... :)

В общем, многие знания - многие печали.

Типа: А нахрена лягушке XVM? :)

Share this post


Link to post

Short link
Share on other sites

Типа: А нахрена лягушке XVM? :)

Часики очень полезны, надо бы еще в ангар часики воткнуть, что бы бороцца с синдромом "еще одной партии перед сном" :)

 

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

 

Так же очень веселит, когда какой нибудь игрок с 30% начинает вопить в чате "вы все нуубы" и т.д. :)

 

Словом очень полезная весчь. Надо бы еще интерфейс под себя настроить получше, тогда вообще хорошо будет.

 

Хотелось бы в полной инфе по tab уровень танчиков на иконках, и выравнивание надписей стата модель танчика, а то читать пока еще не очень удобно, т.к. танчик по иконке еще не определяю.

 

 

 

 

 

Share this post


Link to post

Short link
Share on other sites

У меня на Windows 7,x-64 стал с первого раза и без проблем с инсталятора с их сайта.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...