-5

В принципе, я PHP Developer по профессии. У меня только есть опыт разработки веб-сайтов с использованием PHP. У меня больше нет опыта создания мобильных приложений.Как веб-сайты и мобильные приложения Facebook, Gmail, LinkedIn и т. Д. Работают вместе в синхронизации друг с другом?

Моя организация хочет создать сайт (с помощью PHP), а также мобильных приложений (в Android и IOS), чтобы создать присутствие в социальную сеть для некоторого сообщества, которое будет точно походить на работу сайта Facebook и Facebook приложения.

Но я не понимаю, с чего начать? Как начать? Какой подход я должен соблюдать? Как использовать PHP для всего этого?

Я хочу знать, как делает сайт Facebook и Facebook приложение работают вместе в синхронизации? Я хочу знать, что это за явление, системная архитектура, принцип, шаблоны проектирования, технологии и другие вещи работают за этим?

Я использую сайт Facebook на моем ноутбуке и Facebook приложения из моего Android смартфона.

Всякий раз, когда я получать уведомления о Facebook, это получить уведомление почти в тот же момент на сайте Facebook а также Facebook приложение.

Кроме того, всякий раз, когда я обновить свой статус или делать какую-либо деятельность, как реагировать или комментировать записи, добавлять обновления группы, добавление обновления событий и т.д. из сайта Facebook он получает отражение сразу в приложение Facebook а и это происходит по-разному. Это происходит очень гладко.

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

The приложения Facebook были построены с использованием различных технологий (например, Android, IOS, Windows Phone, Blackberry и т.д.) и на сайте Facebook был построен с использованием PHP и все другие вещи, но все они работают вместе синхронизации.

Какое явление связано с работой разных технологий вместе в синхронизации друг с другом?

И я наблюдал одно и то же с различными веб-сайтами и приложениями, такими как Gmail, LinkedIn и т. Д. Они также работают над тем же явлением, что и Facebook?

Пожалуйста, направляйте меня в правильном направлении относительно этого. Что и как должен быть мой подход к этому проекту в качестве разработчика PHP?

Спасибо.

ответ

-1

Это просто и легко: https://en.wikipedia.org/wiki/Comet_(programming)

Facebook и Gmail (насколько я знаю) с помощью Comet Техника для каждых живых вещей в своих приложениях. Он работает очень просто, давайте создадим сценарий:

1- У нас есть файл, который продолжает искать файл для изменения. (notification.php)

2- У нас есть веб-сайт (index.php) (который подключается к notification.php)

3- У нас есть приложение для Android (который подключается к notification.php)

4 У нас есть файл, который сохраняет все уведомления. (savenotification.php)

Итак, давайте создадим файл с именем {} .txt идентификатор в нашем каталоге. Если я создам уведомление через приложение или веб-сайт, эти уведомления будут всегда сохранены на savenotification.php. Еще одна важная вещь: файл (savenotification.php) будет изменять файл {userid} .txt всякий раз, когда вы создаете уведомление.

Тем временем наше приложение и веб-сайт всегда будут слушать notification.php, чтобы дать ответ.

notification.php работает так:

$openingTime = microtime(); 
$userid = $_SESSION['userId']; 
while (true) { 
    if (mtime($userid.'.txt') > $openingTime) { // check if file changed while we are in loop 
     echo json_encode('data' => 'New notification created.'); 
     break; 
    } 
    usleep(250); 
} 

Так это означает, что если вы когда-либо будет создавать уведомления на savenotification.php файл, который вы должны изменить {} .txt Идентификатор_пользователя файл из-за наш notification.php постоянно ищет любые изменения, сделанные в этом файле при непрерывном цикле. Если какое-либо изменение сделано, это означает уведомление, созданное на приложении или на веб-сайте или в любом источнике.

2

В начале заинтересовано в WebSockets

WebSockets является передовой технологией, которая позволяет открыть интерактивный сеанс связи между браузером пользователя и сервером. С помощью этого API вы можете отправлять сообщения на сервер и получать ответы, управляемые событиями, без необходимости опроса сервера для ответа.

и Ratchet

WebSockets для PHP

Ratchet является слабосвязанная PHP библиотека, предоставляющая разработчикам инструменты для создания в реальном времени, двунаправленную приложения между клиентами и серверами более WebSockets. Это не ваш Интернет-магазин Деда.

Затем вы можете сделать Creating Real Time Applications with PHP and WebSockets или Real-Time Web applications with PHP and Ratchet.

+0

Facebook не использует WebSockets, которые они будут показывать в консоли Chrome WebSockets. –

+0

OK @WaqasBukhary, но мне кажется, что вопрос не в том, что именно используется Facebook, а о том, как создать веб-приложение в режиме реального времени. Я думаю, что WebSockets - отличная идея для этого. – simhumileco

6

Оба сайта Facebook и Facebook используют одну и ту же базу данных. Приложение Facebook скорее всего использует веб-API REST для связи с частью API на веб-сайте Facebook для извлечения данных из общей базы данных или изменения данных в общей базе данных.

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

Хороший способ начать работу - использовать существующую структуру REST API. Список можно найти здесь: http://davss.com/tech/php-rest-api-frameworks/

2

Если вы являетесь разработчиком PHP по профессии, вы, вероятно, понимаете, что в приложении есть разные слои.

Передняя часть будет состоять из вашего веб-приложения, написанного PHP/ASP/JAVA, и любого другого языка, о котором вы можете думать. Они могут быть даже в виде приложения для настольных компьютеров Mac, приложения для настольных компьютеров, приложений для Android и приложений для iOS.

Facebook и google работают одинаково ... но в конце концов все эти приложения предназначены для извлечения данных из базы данных и их отображения.

Таким образом, независимо от того, что языки и платформы вы пишете для ... Вы можете просто создать веб-приложение в PHP с MySql ..

В будущем вы можете добавить приложение IOS, Android Apps или любой другой другие платформы, которые вы хотите написать для ... все, что им нужно сделать, это прочитать из базы данных MYSQL и отобразить информацию для своего пользователя.

Уведомление Для получения дополнительной информации о статусе Facebook на вашем сайте и получении уведомления на телефоне. Это делается путем нажатия сообщений через веб-сокеты на разные устройства, точно так же, как работает приложение для чата.

Вы можете попробовать что-то вроде pusher.com или pubnub.com. Я лично использую pusher.com для отправки уведомлений на устройства ios/android.

Это происходит, когда вы обновляете свой статус Facebook в своем интернет-проводнике.

Типичный поток

Update Status -> Facebook обновления базы данных -> Facebooks отправить уведомление IOS устройств -> IOS устройств получать уведомления -> IOS устройства извлечения новой информации из базы данных

Конечно, если бы вы писали приложение для устройства iOS или устройства Android, вы, вероятно, также разработали бы локальную базу данных на самом устройстве, поэтому вы не будете тянуть концерт абы данных из удаленной базы данных все время.

2

Рекомендую вам ознакомиться с Parse.com. К сожалению, они меняют способ работы своей системы, и я могу говорить только из своего прошлого опыта. Parse размещает базу данных для вас, и у них есть библиотеки, позволяющие вам использовать вашу базу данных на разных платформах и языках программирования, включая PHP, IOS и Android. Теоретически все, что вам нужно сделать, это загрузить библиотеку PHP и заставить мобильные разработчики загружать мобильную библиотеку для IOS и Android, хотя это немного сложнее.

Я не уверен, что это было бы более выгодно, чем настройка базы данных для обработки вызовов с PHP и мобильных устройств, но, возможно, стоит заглянуть в нее. Также важно отметить, что Parse переносится на базы данных, размещенные пользователями, и я не уверен, как это повлияет на новых пользователей или на синтаксический анализ преимуществ. Вам нужно будет настроить вашу размещенную базу данных, поэтому она немного сложнее, чем просто загрузка библиотек.

Надеюсь, это полезно, и удачи!

1

Это сочетание технологий и методов, которые можно использовать для вашей цели:

  1. об архитектуре: вы бы разработать API на основе архитектуры , которая позволяет иметь веб-интерфейс или использовать любые другие платформы для доступа к средствам в вашем приложении. I рекомендуют каркас Yii 2 или специально рамки Zend 2 и Apigility. большинство используемых методов API - это SOAP и REST, которые I рекомендуют REST, поскольку он не раскрывает методы и не поддерживает JSON. есть много, чтобы прочитать о архитектуре.

  2. о базе данных: вам, разумеется, нужна одна база данных, но если вы беспокоитесь о производительности, вы можете рассмотреть программные решения.
    Рассматривая эффективность MySQL или использование баз данных NoSQL, а также
    , существуют другие решения, такие как использование нескольких серверов и кластера
    баз данных и балансов нагрузки. и более важным является то, как использовать кэш (есть некоторые решения, такие как лак или Memcached)

  3. о шаблоне проектирования: дизайн модель несколько различных стандартов для различных ситуаций. если вы имеете в виду, какой шаблон дизайна для уведомления вы можете использовать.это наблюдатель/инвертор Паттерн

  4. толчок уведомление: вы будете использовать услуги APNs (Apple Push сервис уведомлений) и GCM (Google Cloud Messaging), которая позволяет информировать приложения об изменениях и новых notificatins

  5. о приложении: в соответствии с возможностями, которые вы предоставили своему клиенту, вы можете использовать собственный подход к разработке или гибридную разработку (например, Кордову) для загрузки тех же форм на мобильных устройствах и вызова своего API для обновления, удаления, создания или любых действий, которые у вас есть или получения уведомлений , есть много решений здесь также для гибридного приложения, как с помощью ВЗАИМОДЕЙСТВУЕТ и мобильный Bootstrap или угловую и ионную структуру и ...

также вы можете использовать NOD JS и отделить ваш веб-приложение с сервера API или использования PHP для обоих. или использовать один сервер для веб-интерфейса и веб-сервисов, я имею в виду, что есть много решений.

1

Только знание PHP будет работать. Это займет 5 минут, создайте сообщество с поддержкой API RESTful на общем сервере или свободном уровне OpenShift PaaS для тестирования &.

WordPress + BBPress + WP RESTful API + Пользовательские App

Демо фронтэнда сообщества: https://bbpress.orgy Демо REST API в действии: https://bbpress.org/wp-json/

Это второй URL как вещь будет делать "синхронизации" работы с мобильным приложением.

Установите WordPress. Затем установите:

  1. https://wordpress.org/plugins/rest-api/
  2. https://wordpress.org/plugins/rest-api-oauth1/
  3. https://wordpress.org/plugins/bbpress/

Ваш API-сервер с сообществом готова в течение 5 минут. 100% веб-приложение RESTful. Чтение -

  1. http://v2.wp-api.org/
  2. https://github.com/WP-API/OAuth1/blob/master/docs/basics/Signing.md
  3. http://wp-api.org/resources.html
  4. https://developer.wordpress.org/rest-api/
  5. https://bbpress.org/forums/topic-tag/api/

Вы хотите приложение для Android. Вы будете следовать этому руководству: https://deliciousbrains.com/creating-mobile-app-wp-api-react-native/

WordPress действительно есть мобильные приложения - https://apps.wordpress.com/mobile/ & исходный код - https://github.com/wordpress-mobile/WordPress-Android

Как вы хотите использовать приложение, это ваше дело. Вы можете их изменить.

Как работает

В простом слове, веб-приложение имеет современный «корм», как вещь под названием JSON ответ. Это один из способов обновления мобильного приложения. Фактически вы можете использовать канал, когда мобильное приложение доступно только для чтения. Они относятся к категории REST. Эти новые JSON-пути обеспечивают грамотный контроль чтения и записи. Отдых записывается в их документах.

Важно

WordPress JetPack предоставляет множество свободно использовать функции, включая толчок. Спросите на официальном форуме WordPress, когда у вас возникнут сомнения.

Ограничение местоположения с помощью программного обеспечения веб-сервера для ограничения скорости, чтобы избежать DDoS, используйте Fail2Ban, iptables. Очень опасно не фильтровать веб-сервер, журнал мониторинга, использовать кеш.

1

Все о API интеграции и программирования. В сортировке вам необходимо создать центральный сервер (управляемый и сбалансированный), обслуживающий данные и запросы обработки с веб-сайта и мобильного приложения.

Возникающий метод с PHP (популярный и соответствующий) шаг за шагом 1) Создание REST API и создать OAuth cerver с Laravel или Lumen рамки. Эти рамки почти одинаковы и кроме производительности. Вы можете создать хороший REST api и использовать паспорт (Oauth) для аутентификации REST. Мобильное приложение и ваш сайт могут взаимодействовать с REST api. 2) Создайте мобильное приложение с помощью AngularJS и создайте для Android и ios с помощью ионной, кордовой или телефонной заставки. Вы можете создать собственное приложение, используя свой SDK, но теперь фреймворки Javascript также достаточно сильны для мобильных приложений.

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

Недавно я разработал веб-приложение, а также мобильное приложение для Android и iphone. И для этого я использовал Laravel 5.3 (PHP), AngularJS и VueJS.

+0

Для уведомления есть много сторонних инструментов и приемов. – webDev

1

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

  1. Первая проблема с вопросом является то, что вы делаете абсолютное неверное предположение, что Facebook приложение и веб-сайт Facebook синхронизации. Я всегда получаю сообщения на своем телефоне с задержкой. Это означает, что оба делают отдельные вызовы API.
  2. Second основная проблема проблема в том, что вы задаете вопрос, на который уже ответил несколько раз. lookatthese примеры базовой идеи.
  3. Вы заявляете, что хотите, чтобы эта информация была построена на веб-сайте с нуля, но вы хотите следовать примеру веб-сайта, который инвестировал миллионы долларов. У них огромный трафик, проверьте это link. Следовательно, они не используют обычные методы для поддержания этого, и это не было построено за один день. Вам нужно начинать с нуля, а затем масштабировать.
Смежные вопросы