#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.