веб-сервер отправляет команду в приложение J2ME - PullRequest
3 голосов
/ 06 августа 2009

Может ли приложение J2ME запускаться сообщением с удаленного веб-сервера. Я хочу выполнить задачу на клиентском мобильном телефоне, как только запущенное на нем приложение J2ME получит это сообщение. Я прочитал о HTTP-соединении, однако я понимаю, что это клиентский протокол, и сервер будет отвечать только на клиентские запросы. Любая идея, если есть какой-либо протокол, где сервер может отправить команду клиенту без клиента, инициирующего какой-либо запрос? Как насчет интерфейсов на основе сокетов / потоков (TCP) или UDP?.

Ответы [ 4 ]

3 голосов
/ 07 августа 2009

Если мобильное устройство не позволяет устанавливать TCP-соединения, и вы ограничены HTTP-запросами, тогда вы рассматриваете возможность реализации «длинного опроса».

Один запрос POST http и веб-сервер будут ждать ответа как можно дольше (до истечения времени ожидания). Если что-то приходит во время простоя соединения, оно может получить его напрямую, если что-то приходит между запросами с длинным опросом, оно ставится в очередь до тех пор, пока не поступит запрос.

Если вы можете устанавливать TCP-соединения, просто установите соединение и оставьте его бездействующим. У меня есть приложения icq и irc, которые просто сидят и ждут, пока сервер что-то отправит.

2 голосов
/ 08 августа 2009

Вы можете открыть сокетное соединение и реализовать функцию «Скрыть» (или «Свернуть») в своем приложении. Позвоните, чтобы скрыть:

Display.getDisplay(MyMIDlet.instance).setCurrent(null);

Прослушивание сервера в цикле, и, если вы получаете какое-либо сообщение, выведите приложение на экран, вызвав его из canvas:

Display.getDisplay(MyMIDlet.instance).setCurrent(this);

Но это работает не на всех устройствах.

2 голосов
/ 07 августа 2009

Вы должны увидеть функцию PushRegistry, где вы можете отправлять SMS на определенный номер, если приложение запускается, когда телефон получает это SMS, а затем устанавливает требуемое соединение HTTP или что-то еще. Однако недостатком является то, что вам, возможно, придется подписать приложение, чтобы оно работало на устройствах, и вам также понадобится агрегатор SMS, например SMSLib или Kannel

1 голос
/ 07 августа 2009

Поддержка сокетов поддерживается j2me. Но это может сработать, только если ваш сервер сможет доставлять данные на ваш мобильный телефон. Скорее всего, что операторский шлюз не позволяет это сделать. Возможно, это было бы возможно, если бы у вашего мобильного телефона был статический внешний IP-адрес - некоторые операторы могли бы предоставить его за $$.

...