2013-07-03 3 views
2

У меня есть сервер Java, работающий с весной. На данный момент мне нужно создать службу GCM для отправки данных с сервера на Android-приложение.Можно ли добавить PHP-скрипты на сервере Java?

У меня есть некоторый учебник по Интернету, и все они реализуют эту службу в php-скрипте. Мне интересно, могу ли я использовать их на своем java-сервере с весной.

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

Я 'd хотел бы знать, можно ли добавить эти скрипты php, и если да, то как я могу это сделать?

+0

Короткий ответ: № – BlackHatSamurai

ответ

3

Даже если вы связываете свой Java-сервер с некоторым кодом PHP, который отправляет сообщения GCM, вам все равно придется передавать идентификаторы регистрации и полезную нагрузку уведомления на этот код. Не было бы проще просто использовать gcm-server.jar, поставляемый Google?

Используя gcm-server.jar, код, который нужно отправить сообщение GCM так просто, как это:

Sender sender = new Sender(apiKey); 
Message message = new Message.Builder() 
    .delayWhileIdle(true) 
    .addData("key1", "value1") 
    .addData("key2", "value2") 
    .build(); 
Result result = sender.send(message, registrationId, numOfRetries); 

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

Единственное, что вам нужно реализовать - это сервлет, который принимает регистрационные идентификаторы из вашего приложения Android и сохраняет их в вашей БД. Возможно, вы можете использовать существующий PHP-код для этой части (вам не нужен какой-либо интерфейс между кодом PHP и кодом Java).

+0

Oooww! Это то, что я ищу! Я проверю этот фрагмент кода, кажется, очень легко! Как насчет отправки идентификатора из приложения Android на сервер, есть ли какой-либо трюк, который делает gsm-библиотека, или мне нужно отправить его с помощью службы Rest или что-то в этом роде? –

+0

@FelipeMosso Для отправки ID вам понадобится сервлет или JSP или что-то в этом роде. Библиотека Google не предоставляет этого, поскольку в нем не делается никаких предположений относительно того, что вы собираетесь отправлять с вашего приложения на ваш сервер (вы можете решить отправить дополнительную информацию рядом с идентификатором регистрации), и в ней не делается никаких предположений относительно того, как вы собираетесь хранить данные на своем сервере. – Eran

+0

Хорошо! Спасибо огромное! Я собираюсь попробовать, у меня также есть образцы с android sdk! Большое спасибо за то, что дал мне направление! –

0

вы можете запускать внешние программы из кода Java

вы должны передать данные взад и вперед как-то. чтение/запись STDIN и STDOUT вероятно

Maby это поможет: Execute external program in java

0

Да, вы можете. У них есть интерпретаторы для PHP, JavaScript и даже Python, написанные на чистой Java. Для PHP одним из таких предложений является Caucho Quercus.

+0

Я думаю, что тот факт, что другой путь не верен, говорит что-то ... –

+0

Я понятия не имею, что вы только что сказали. OP спросил, можете ли вы запускать PHP в веб-приложении Java/Spring, которое, как я полагаю, можно использовать с включенной ссылкой, которая является развертыванием WAR-интерпретатора PHP, написанного на Java. – CodeChimp

+0

Это не было критикой, только острое замечание относительно java;) –

Смежные вопросы