2014-09-01 7 views
1

Мне нужно немного помочь понять пару вещей о gcm - стороне сервера. Я работаю над приложением мгновенного обмена сообщениями с примером серверной стороны здесь http://developer.android.com/google/gcm/ccs.htmlGoogle Cloud Messaging - SERVER SIDE

После выполнения этого кода Он соединяется, но завершается через несколько секунд. Я могу догадаться, что причина в том, что функция main().

public static void main(String[] args) throws Exception { 
    final long senderId = 1234567890L; // your GCM sender id 
    final String password = "Your API key"; 

    SmackCcsClient ccsClient = new SmackCcsClient(); 

    ccsClient.connect(senderId, password); 

    // Send a sample hello downstream message to a device. 
    String toRegId = "RegistrationIdOfTheTargetDevice"; 
    String messageId = ccsClient.nextMessageId(); 
    Map<String, String> payload = new HashMap<String, String>(); 
    payload.put("Hello", "World"); 
    payload.put("CCS", "Dummy Message"); 
    payload.put("EmbeddedMessageId", messageId); 
    String collapseKey = "sample"; 
    Long timeToLive = 10000L; 
    String message = createJsonMessage(toRegId, messageId, payload, 
      collapseKey, timeToLive, true); 

    ccsClient.sendDownstreamMessage(message); 
} 
  1. не должен быть «а» заявление, которое держит связь XMPP живой между приложением-сервером для GCM сервера?

  2. Не означает, что серверная сторона в данном случае (приложение для обмена мгновенными сообщениями) должна поддерживать соединение с сервером GCM и прослушивать входящие сообщения от клиентов. сообщения типа: 2.1 Когда клиент хочет зарегистрироваться в приложении, поэтому мне нужно сохранить его данные в базе данных. 2.2 Когда клиент хочет отправить сообщение другому клиенту, чтобы серверное приложение отвечало за отправку сообщения в пункт назначения?

Я искал пару примеров для реализации стороны GCM сервера с использованием XMPP, и все они были с такой основной функции я говорил выше ... Могу ли я получить что-то не так?

ответ

0

Да, соединение XMPP должно оставаться в силе. В противном случае ваш сервер не сможет получать сообщения с восходящим потоком (устройство для облачных).

Не могу сказать, почему все приведенные вами примеры не поддерживают открытое соединение. Наверное, это упрощенные примеры.

+0

Эй, спасибо за ваш ответ. Я задал тот же вопрос здесь, и они ответили по-другому ... вы можете посмотреть на его ответ? спасибо http://www.grokkingandroid.com/xmpp-server-google-cloud-messaging/#comment-313453 – sfdcdev

+0

Кроме того, я проверил сейчас, в Wireshark, чтобы узнать, остается ли соединение, и оно не делает, откуда Я получаю шаблон для сервера вроде этого? Я не понимаю, что я должен делать с примером, который дал мне Google. – sfdcdev

+0

@ RonDaniel Вы смогли поддерживать связь? – Itachi

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