Jump to content

dbf_usr

uniGUI Subscriber
  • Posts

    453
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by dbf_usr

  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;
  15. Никаких антивирусов нет. Если я не использую UniGUIServerModuleHTTPCommand, то приложение через HyperServer работает нормально.
  16. Есть еще вопрос. Если я использую HyperServer то пиложение не запускается пустая страница, нет формы с логином и фонового изображения. А таже при обращении к API ответ приходит об ошибке. Не работает. Если приложение запущено без HyperServer, то все работает, и приложение и API. Это ошибка или нужно что-то настроить в HyperServer? Заранее благодарен!
  17. Да, там запросы к БД и логика.
  18. Делаю REST API, в ServerModule есть две проблемы: 1. Отлавливаю обращение и принимаю JSON запрос и даже отправляю JSON клиенту. Но мене нужно отправить данные, а они в DataModule, а он на этом этапе еще не существует. По хорошему нужно запустить новый сеанс и в нем уже запускать процедуры в которых добывать данные, потом их как-то передать в ServerModule для отправки 2. И еще проблема - HyperServer режет заголовки, вместо JSON приходит только "<HTML><BODY><B>200 OK</B></BODY></HTML>" Если приложение запущено без 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.ContentType := 'application/json'; if JSONRequest.TryGetValue<string>('option', option) then begin if option = 'getuser' then AResponseInfo.ContentText := UniMainModule.API_GetUser(key); // ТУТ ПОПЫТКА ВЫЗОВА ФУНКЦИИ ИЗ ДАТАМОДУЛЯ if option = 'gettemplates' then AResponseInfo.ContentText := UniMainModule.API_GetTrmplates(key); // ТУТ ПОПЫТКА ВЫЗОВА ФУНКЦИИ ИЗ ДАТАМОДУЛЯ end else AResponseInfo.ContentText := '{ "option": "error-0" }'; AResponseInfo.ContentEncoding := 'utf-8'; AResponseInfo.ContentLanguage := 'ru'; AResponseInfo.CharSet := 'utf-8'; AResponseInfo.ResponseNo := 200; today:=now; end else begin AResponseInfo.ResponseNo := 400; end; finally JSONRequest.Free; end; finally RequestData.Free; end; end else begin AResponseInfo.ResponseNo := 404; end; end;
  19. Как сделать прозрачную форму?
  20. Цель: показать ролик из yuotube при помощи UniHTMLMemo, чтобы на экране был только ролик поверх других форм и над ним парящяя кнопка закрытия формы (ее просто добавлю а форму). Нашел только это решение и оно не работает (( Всем за ранее благодарен за ответы!
  21. Как в UniPage скрыть и отобразить UniTabSheet вовремя выполнения? UniTabSheet.visible:=treu|false - нк работает хотя для UniPageControl1.TabBarVisible - вполнерабочий. За ранее благодарен за ответы!
  22. Отлично! Спасибо!!!!! Только локализация не работает ((
×
×
  • Create New...