Jump to content

dbf_usr

uniGUI Subscriber
  • Posts

    453
  • Joined

  • Last visited

  • Days Won

    1

dbf_usr last won the day on October 27 2021

dbf_usr had the most liked content!

Profile Information

  • Gender
    Male
  • Location
    Ukraine

Contact Methods

  • Skype
    d.dubrovin@hotmail.com

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

dbf_usr's Achievements

Advanced Member

Advanced Member (4/4)

11

Reputation

  1. Вы не сможене взаимодействовать с приложениями iOS и MAC OS. Они просто не захотят устанавливать соединения. Удалось подружить только через IIS, сертификаты прописаваются в IIS. HyperServer пока к сожалению на это не способен. Пришлось выносить в отдельное приложение и запускать его под IIS.
  2. Используется последняя версия компонент на текущий момент. Удалось запустить проект, но только при помощи ISAPI и под IIS. Вывод: UNIGUI - не имеет достаточной защищенности по HTTPS, при использовании его в виде ServerStandAlone, поскольку он использует устаревший OpenSSL, который не поддерживает последние версии шифрования и сертификатов. Вы не сможете разрабатывать сервисов работающих в iOS, MacOS - они просто не принимают соединение с старым шифрованием, а ноновое UniGUI не способен. Для продакшина возможно использовать только ISAPI под IIS. Что значительно ухудшает его масштабируемость, Гипер сервер становится просто бесполезен. Готовьтесь постоянно "передергивать" IIS, потому что в инструкции по настройке ISAPI под IIS отключена функция перезапуска приложения сервером и оно будет у вас виснут. Если раньше это решалось при помощи Гипресервера, то теперь будете руками перезапускать IIS, когда к вам начнут звонить ваши клиенты и жаловаться, что сервис не работает. Интересно через сколько обращений они откажутся от вашего сервиса?
  3. Используется последняя версия компонент на текущий момент. Удалось запустить проект, но только при помощи ISAPI и под IIS. Вывод: UNIGUI - не имеет достаточной защищенности по HTTPS, при использовании его в виде ServerStandAlone, поскольку он использует устаревший OpenSSL, который не поддерживает последние версии шифрования и сертификатов. Вы не сможете разрабатывать сервисов работающих в iOS, MacOS - они просто не принимают соединение с старым шифрованием, а ноновое UniGUI не способен. Для продакшина возможно использовать только ISAPI под IIS. Что значительно ухудшает его масштабируемость, Гипер сервер становится просто бесполезен. Готовьтесь постоянно "передергивать" IIS, потому что в инструкции по настройке ISAPI под IIS отключена функция перезапуска приложения сервером и оно будет у вас виснут. Если раньше это решалось при помощи Гипресервера, то теперь будете руками перезапускать IIS, когда к вам начнут звонить ваши клиенты и жаловаться, что сервис не работает. Интересно через сколько обращений они откажутся от вашего сервиса?
  4. Как в SertverModule получить IP адрес клиента?
  5. Собрал ISAPI приложение настроил IIS 10 по инструкции. При переходе на сайт открывается Index.html подскажите что мог пропустить или может что-то для версии IIS 10 не дописано в инструкции? Всем заранее благодарен за ответы!
  6. Пишу отдельный модуль без УниГуя и туда Синапс хочу попробовать прикрутить. Скинь в приват ссылочки на библиотеки и на доки, примеры..... Спасибо огромное!!!!
  7. Можно попросить подробнее про свежие DLL и про Синапс. Ссылочки в личку если можно. Заранее очень благодарен!!!
  8. Потому что придется разворачивать паралельно и кластер для приложения и IIS для API. Для этого придется покупать Windows Server, сейчас у меня кластера отлично работают на обычных Windows 10. Ради запуска API - слишком дорого.
  9. К сожалению IIS вообще не вариант, тогда весь смысл теряется при отказе от HyperServer. Нужно решение без использования OpenSSL который устарел и уже не поддерживается. Последняя версия библиотек за 2019 год. Скоро проблемы начнутся и с браузерами.
  10. Разобрался. В проблеме виноваты кастрированные библиотеки openSSL? которые не поддерживают много всего и не важно что сертификат нормальный. Поэтому вопрос к производителем uniGUI: вы собираетесь с этим что-то делать? Написать свои библиотеки, использовать другие... Хоть какое-то решение!!! Напишите кого палкой потыкать что бы ответ получить или пора крест ставить на uniGUI? (жалко столько потраченного времени!)
  11. Пишу API для мобильного приложения на iPhone, которое встраиваю в приложении написанное на uniGUI, поскольку тут уже реализована вся бизнес-логика и выясняется, что нет совместимости SSL TLS 1.2 с Apple ATM. Провел тесты тут: https://www.ssllabs.com/ssltest/ и увидел почему не работает мобильное приложение. SSL в Delphi не корректно работает. Кстате рабочие сертификаты, работающие на сайте не работают в Indy. Кто-то сталкивался с этой проблемой? Есть ли какие-то варианты решения проблема, кроме отказа от Delphi и uniGUI ? Всем за ранее благодарен за ответы!
  12. Сделал простой тестовый пример. Очень жду результатов! Заранее благодарен !!!!! Error_api.zip
  13. Выше описал проблему. Эта ошибка в HyperServer или ограничение? То есть нельзя использовать HyperServer с подобными приложениями? Я правильно понял?
  14. При запуске приложения через HyperServer, приложение возращает вот это <HTML><BODY><B>200 OK</B></BODY></HTML> вместо JSON ответа. Если запускать приложение без HyperServer то JSON приходит корректный. Вот исправленная процедура, а ниже скрины ответа приложения. Там видно что в заголовке тип ответа меняется Content-Type: application/json; charset=utf-8 на text/html; charset=utf-8. Поэтому и появляется проблема. Видимо HyperServer переделывает заголовки и обрезает ответ. Как можно это исправить, может я опять где-то настройки не сделал? За ранее очень благодарен за ответ. procedure TUniServerModule.UniGUIServerModuleHTTPCommand( ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; var Handled: Boolean); var RequestData: TStringStream; JSONRequest: TJSONObject; sam, key,option: string; today : TDateTime; begin if ARequestInfo.Document = '/api/data' then begin RequestData := TStringStream.Create; try RequestData.LoadFromStream(ARequestInfo.PostStream); JSONRequest := TJSONObject.ParseJSONValue(RequestData.DataString) as TJSONObject; try if JSONRequest.TryGetValue<string>('sam', sam) and JSONRequest.TryGetValue<string>('key', key) then begin AResponseInfo.ContentEncoding := 'utf-8'; AResponseInfo.ContentLanguage := 'ru'; AResponseInfo.CharSet := 'utf-8'; AResponseInfo.ResponseNo := 200; AResponseInfo.ContentType := 'application/json'; if JSONRequest.TryGetValue<string>('option', option) then begin if option = 'getuser' then AResponseInfo.ContentText := UniServerModule.API_GetUser(key); // функция возвращает JSON Handled := True; if option = 'gettemplates' then AResponseInfo.ContentText := UniServerModule.API_GetTrmplates(key); // функция возвращает JSON end else AResponseInfo.ContentText := '{ "option": "error-0" }'; Handled := True; end else begin AResponseInfo.ResponseNo := 400; Handled := True; end; finally JSONRequest.Free; end; finally Handled := false; RequestData.Free; end; end else begin Handled := false; end; end;
×
×
  • Create New...