Intereting Posts
Как я могу захватить пакеты в Android? Android SDK требует инструментария разработчика Android версии 17.0.0 или выше CardView выходит поверх FrameLayout, но сначала объявляется Как опросить веб-сервис с конечным интервалом от андроида? Загрузка динамического класса с помощью метода Deell для IntelliJ – 64K Android HttpURLConnection: обрабатывать перенаправления HTTP Как создать панель кнопок верхнего или нижнего колонтитула для приложения для Android Strange Lint Warning – Неожиданный текст, найденный в файле макета: "" Переместить курсор в конец EditText? Добавление элементов управления яркостью экрана в приложение для Android NestedScrolling с NestedScrollView, RecyclerView (по горизонтали) внутри координатораLayout Как получить активность, запрошенную намерением Хорошие инструменты для разработки графического интерфейса в Android? Предварительный просмотр макетов в Studio Studio для Listview + Gridview Как удалить приостановленное приложение из консоли разработчика Google Play?

Архитектура потребителей и провайдеров Laravel

Я использую Laravel для создания приложения, которое помогает пользователям находить поставщиков услуг. Там будут 2 приложения, такие как Uber, 1 для пользователей и 1 для поставщиков. Пользователь выполнит запрос и в зависимости от запроса выбранные Провайдеры получат уведомление. Как и Убер.

Проблема в том, как мне это сделать. Что я придумал:

  1. 2 APPS: У вас есть 2 приложения Laravel с общим db. Но как я могу уведомить поставщиков, когда Пользователь генерирует запрос? Изменяется только БД, так как я могу сообщить поставщику приложений, что приложение пользователя сгенерировало запрос?

  2. Single App 2 FrontEnds: иметь одно приложение Laravel и 2 передних конца. В Play Store будут отдельные приложения, но одно серверное приложение. Как я могу это сделать?

Есть ли лучшее решение для этого подхода? Как Uber делает то же самое?

Solutions Collecting From Web of "Архитектура потребителей и провайдеров Laravel"

Я бы посоветовал вам использовать данную службу, такую ​​как PubNub (см. Demos) .

Таким образом, вы можете сохранить свою Server-Development, есть также Android-пример. Вы просто используете его в своем APP следующим образом:

dependencies { .... compile 'com.pubnub:pubnub:3.7.4' //'com.pubnub:pubnub-android-debug:3.7.+' For the debug version } 

а также

 import com.pubnub.api.*; import org.json.*; Pubnub pubnub = new Pubnub("demo", "demo"); try { pubnub.subscribe("my_channel", new Callback() { @Override public void connectCallback(String channel, Object message) { pubnub.publish("my_channel", "Hello from the PubNub Java SDK", new Callback() {}); } @Override public void disconnectCallback(String channel, Object message) { System.out.println("SUBSCRIBE : DISCONNECT on channel:" + channel + " : " + message.getClass() + " : " + message.toString()); } public void reconnectCallback(String channel, Object message) { System.out.println("SUBSCRIBE : RECONNECT on channel:" + channel + " : " + message.getClass() + " : " + message.toString()); } @Override public void successCallback(String channel, Object message) { System.out.println("SUBSCRIBE : " + channel + " : " + message.getClass() + " : " + message.toString()); } @Override public void errorCallback(String channel, PubnubError error) { System.out.println("SUBSCRIBE : ERROR on channel " + channel + " : " + error.toString()); } } ); } catch (PubnubException e) { System.out.println(e.toString()); } 

Если вы ищете идеи, как Uber делает это, посмотрите на учебник « Набор решений для мобильных решений PubNub »,

Поэтому я надеюсь, что смогу ответить, как это делает Убер и как вы можете сделать это лучше 🙂

Я думаю, что хорошим решением будет включение всей бизнес-логики в одно приложение Laravel, доступное через REST. Поэтому вам не нужно дважды обновлять файлы.

«Реальные» приложения работают только как средний уровень и используют этот API.

Например, вы можете настроить Angular Apps. Если вы используете nginx, вы можете определить разные местоположения для домена. Таким образом, все запросы, начинающиеся с «api», направляются в ваше приложение Laravel. Остальное направлено на ваше статическое приложение с угловыми углами.

 { listen 80; server_name customer.com; location /api{ root /var/www/api; } location / { root /var/www/static/customer; } } { listen 80; server_name internalarea.com; location /api{ root /var/www/api; } location / { root /var/www/static/restricted; } } 

https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and-location-block-selection-algorithms

Если вы создадите свои интерфейсные приложения также с помощью Laravel, API станет собственным URL-адресом, который используется внешними системами. Для выполнения этих запросов мне нравится использовать Zend \ Http \ Client, который очень удобен.

Если вы хотите разработать приложение для пользователя normar и для провайдера.

Затем я предлагаю вам разработать приложение 2 seprate и один сервер (никогда не создавайте разные серверы для любого приложения)

Или вы можете назначать типы пользователей во время регистрации.

Вы должны разработать один общий API и два приложения, такие как Uber. Или вы могли бы создать только одно приложение как для вендора, так и для покупателя, как eBay. Вы должны использовать прослушиватель на вашем сервере, поэтому всякий раз, когда срабатывает событие, вы должны отправлять такие уведомления. Взгляните на шаблон дизайна слушателей.

Поскольку существует единственная (база данных), лучше использовать одно бэкэнд-приложение. Вы можете отправить push-уведомление поставщикам (приложение для Android), когда пользователь добавляет новый запрос.