У меня есть java-сервер, работающий с весной. На данный момент мне нужно создать службу GCM для отправки данных с сервера на Android-приложение.
Я видел несколько учебных пособий в Интернете, и все они реализуют эту службу в php-скрипте. Мне интересно, могу ли я использовать их на своем java-сервере с весной.
Я знаю, что могу переписать код на Java, но у меня не так много времени, как работа в университете, поэтому я не хочу тратить много времени на переписывание всего этого.
Поэтому я хотел бы знать, можно ли добавлять эти скрипты php, и если да, то как я могу это сделать?
Даже если вы связываете свой 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).
вы можете выполнять внешние программы из своего java-кода
вам придется каким-то образом передавать данные туда и обратно. чтение / запись stdin и stdout, вероятно
maby это поможет: Выполнить внешнюю программу в java
Да, ты можешь. У них есть интерпретаторы для PHP, JavaScript и даже Python, написанные на чистой Java. Для PHP одним из таких предложений является Caucho Quercus .