Александр Клопоцкий 41 Posted February 2 Share Posted February 2 (edited) Название приложения: Фаберлик Подарки Платформа: Android 32 bit, Android 64 bit Поддерживаемые версии ОС: Android 5.0 и новее Необходимое свободное место: до 80 Мб Описание: Приложение "Фаберлик Подарки" предназначено для для сопровождения постоянных покупателей продукции Фаберлик. Приложение соединяется с базой данных MySQL на обычном хостинге сайта. Для подключения использую компоненты UniDAC, SecureBridge. Каждому скачиванию присваивается порядковый номер, сохраняется в телефоне, по нему отбираются и показываются сообщения чата для данного клиента. При приходе сообщения делаю "Local notification" из примера. Программа администрирования на Delphi 10.4.1 VCL компонентах. Ссылка на приложение: https://play.google.com/store/apps/details?id=faberlic24.by Edited March 10 by Александр Клопоцкий 5 3 Quote Link to post Share on other sites
knsg12 57 Posted February 2 Share Posted February 2 @Александр Клопоцкий Т.е. я как понял вы напрямую подключаетесь к базе и держите коннект? С Юнидаком не работаю, поэтому интересно как там это организованно, на сколько это стабильно? Почему не используете http? Quote Link to post Share on other sites
Александр Клопоцкий 41 Posted February 2 Author Share Posted February 2 Постоянно коннект не держу. Только в момент нажатия кнопки устанавливаю коннект, вставляю запись в таблицу, с сразу отключаюсь. Чтение чата делаю раз в минуту и отключаюсь. http - будет прослойка, нужно будет все поля таблиц через нее прописывать, неудобно. Хочется работать напрямую с SQL, пока ошибок с обрывом соединения в приложении не было. SecureBridge держит SSH подключение в момент коннекта, хостеры не дают подключаться напрямую к базе на хостинге без SSH сертификата. procedure TdmMain.Hoster_FL_REG_Insert; var UniStoredProc: TUniStoredProc; begin if ((PPL_SURNAME <> '') or (PPL_FIRSTNAME <> '') or (PPL_PHONE <> '')) then begin Hoster_Connect; // Подключение к хостингу UniStoredProc := TUniStoredProc.Create(nil); try UniStoredProc.Connection := UniConnection; UniStoredProc.StoredProcName := 'st_reg_insert'; UniStoredProc.PrepareSQL; UniStoredProc.ParamByName('P_APP_ID').ParamType := ptInput; UniStoredProc.ParamByName('P_APP_ID').DataType := ftInteger; UniStoredProc.ParamByName('P_APP_ID').AsInteger := StrToInt(APP_ID); UniStoredProc.ParamByName('P_PPL_SURNAME').ParamType := ptInput; UniStoredProc.ParamByName('P_PPL_SURNAME').DataType := ftString; UniStoredProc.ParamByName('P_PPL_SURNAME').AsString := PPL_SURNAME; UniStoredProc.ParamByName('P_PPL_FIRSTNAME').ParamType := ptInput; UniStoredProc.ParamByName('P_PPL_FIRSTNAME').DataType := ftString; UniStoredProc.ParamByName('P_PPL_FIRSTNAME').AsString := PPL_FIRSTNAME; UniStoredProc.ParamByName('P_PPL_PHONE').ParamType := ptInput; UniStoredProc.ParamByName('P_PPL_PHONE').DataType := ftString; UniStoredProc.ParamByName('P_PPL_PHONE').AsString := PPL_PHONE; UniStoredProc.Execute; finally UniStoredProc.Free; end; Hoster_Disconnect; // Отключение от хостинга end; end; procedure TdmMain.Hoster_Connect; begin ScFileStorage.Path := TPath.GetDocumentsPath; // Папка на Android ScSSHClient.Connected := True; ScSSHChannel.Connected := True; if ScSSHChannel.Connected then UniConnection.Connected := True else TfgDialogs.ShowMessage('SSH - Not Connected!'); end; procedure TdmMain.Hoster_Disconnect; begin ScSSHChannel.Connected := False; ScSSHClient.Connected := False; end; 3 Quote Link to post Share on other sites
Andrey Zubov 12 Posted February 5 Share Posted February 5 ну вообще чат логичнее всего сделать на вебсокетах или нотификейшенах, хотя если чат должен быть и на десктопе то уведомления отпадают и остаются только вебсокеты Quote Link to post Share on other sites
knsg12 57 Posted February 5 Share Posted February 5 Чат это дело второе, тут основной коннект напрямую идёт. Идея конечно интересная. Когда то помню тоже так пытался сделать, при первых попытках перехода с десктопа на вэб, но и вправду прямого коннекта не получилось, пришлось осваивать рестапи. Думаю этот способ очень даже можно использовать, если делать короткие соединения с базой для чтения и изменений, а в остальное время работать автономно. Quote Link to post Share on other sites
Vitaldj 22 Posted February 5 Share Posted February 5 (edited) 12 минут назад, knsg12 сказал: Чат это дело второе, тут основной коннект напрямую идёт. Идея конечно интересная. Когда то помню тоже так пытался сделать, при первых попытках перехода с десктопа на вэб, но и вправду прямого коннекта не получилось, пришлось осваивать рестапи. Думаю этот способ очень даже можно использовать, если делать короткие соединения с базой для чтения и изменений, а в остальное время работать автономно. Я с прошлого года тоже стал использовать почти прямой коннект к БД. Через RemoteDB. Это в чистом виде как трехзвенка, но не через http, а напрямую в БД. Очень удобно! Причем это обернуто все в ssl и авторизацию. Пол года использую - кайфую). Но! На серваке надо ставить «переходник» в виде специального сервиса. А так как у меня свой виртуальный сервер - с этим нет пробем. Edited February 5 by Vitaldj Quote Link to post Share on other sites
knsg12 57 Posted February 5 Share Posted February 5 RemoteDB это в поставке TMS? Наверное платная штука. Хорошо, спасибо за совет, гляну в эту сторону. Quote Link to post Share on other sites
Vitaldj 22 Posted February 5 Share Posted February 5 45 минут назад, knsg12 сказал: RemoteDB это в поставке TMS? Наверное платная штука. Хорошо, спасибо за совет, гляну в эту сторону. Да ТМS. Но работает как часы! Да платно. Но повторная через год подписка 30%. Quote Link to post Share on other sites
Andrey Zubov 12 Posted February 8 Share Posted February 8 Помимо remotedb там в комплекте не менее замечательный инструменты, тот же sparkle и xdata, первый это кастомный кроссплатформенный веб-сервер, второе это restapi/api сервер подключаемый к sparkle одной строчкой в коде. Еще была репликация между 2 БД, кажется echo называется, но его не использовал. Quote Link to post Share on other sites
k0de 55 Posted February 13 Share Posted February 13 Лично я юзаю HTTP запросы и на хостинге PHP или Python и норм. Всё отлично пашет. К тому же перенести скрипты и бд на любой дешевый хостинг заказчик может всегда. Но каждый сам танцует свою мульку. А приложение выглядит прикольно. Через годик думаю вообще будет как сказка пахать и выглядить! ) 1 Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.