Использование IP-адреса для связи с устройством Android

#javascript #php #android #ajax

#javascript #php #Android #аякс

Вопрос:

У меня есть IP-адрес и mac-адрес устройства Android, подключенного к отдельной сети. И я хочу общаться с ним с помощью PHP или ajax , Android-устройство предварительно не зарегистрировано, и оно может измениться. Таким образом, устройство устанавливает первый контакт для отправки IP- и MAC-адресов.

Я хочу иметь возможность отправлять и получать данные с помощью устройства без его взаимодействия, например, я могу дождаться, пока устройство Android свяжется с сервером, и выполнить действие в PHP следующим образом:

 if (isset($_GET['action'])) {
    $PageAction = $_GET['action'];
} else {
    $PageAction = 'NoAction';
}
switch ($PageAction) {
    case "first_action":
           echo "android_action_todo";    
        break;
   
    default:
        echo "No option is selected!";
}

 

теперь Android — устройство может отправлять на URL сервер /phpfile.php?action=first_action и получать отраженную строку android_action_todo .

Я хочу отменить это взаимодействие, чтобы иметь возможность отправлять данные с сервера на устройство, чтобы мне не нужно было ждать, пока Android-плеер сделает first interaction это, чтобы иметь возможность получать данные в режиме реального времени и не ждать Android-устройства, это может занять секунды, минуты или даже часы.

Комментарии:

1. Ваш вопрос слишком расплывчатый и широкий. Если вы хотите, чтобы PHP отправлял данные на устройство Android, это устройство должно либо отправить запрос на ваш сервер, который просто ответит данными, либо у вас должно быть какое-то приложение, которое разрешает входящий трафик, к которому ваш сервер может отправлять запросы. Сокеты могут иметь смысл. Однако вам нужно добавить гораздо больше подробностей о вашей настройке, а также некоторое правильное объяснение того, что вы пробовали и где именно вы застряли. Здесь много «я хочу …» , но нет «я пытался …» .

2. если, скажем, приложение для Android может обрабатывать входящий запрос с сервера, могу ajax ли я использовать IP-адрес устройства Android для отправки запроса? пример: $.post("96.158.226.150/action=first",{data:data},function(result){});

3. Почему бы не попробовать? Мы здесь не как резиновые утки, мы здесь, чтобы помочь, если у вас возникнет какая-то конкретная проблема, которую вы не можете решить самостоятельно. Вам все равно нужно сначала провести некоторые обширные исследования и предпринять несколько реальных попыток. Затем вам нужно показать нам, что вы пробовали, ожидаемый результат и объяснить, что на самом деле происходит.

4. Я хотел убедиться, что использование ajax может достичь устройства, поскольку вы знаете, что IP-адрес, который я получаю от устройства, является IP-адресом сети, в которой оно находится, будет ли оно транслироваться всем? или выброшен? и по большей части мне нужно внести большие изменения в то, как мой код работает в данный момент, и, имея мало времени в моем распоряжении, я думаю, что не помешает спросить, выполнимо ли это, прежде чем все изменить правильно?

Ответ №1:

Чтобы позволить вашему устройству Android отвечать на входящий запрос, инициируемый сервером, у вас есть несколько вариантов:

  • На устройстве Android должен быть запущен веб-сервер, и чтобы он был доступен на маршрутизаторе брандмауэра / NAT сети, в которой он включен. Задача: сложная и требует правильной настройки сети.
  • Установите соединение websocket с устройства Android на ваш сервер и используйте его для запуска операции с сервера. Проблема: на устройстве должно быть запущено приложение / веб-страница.
  • Используйте push-уведомления Android.