Является ли GAE Channel API только для создания комнат чата, или его также можно использовать для реализации чатов 1-к-1?

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

Я думал об использовании Channel API, но только что понял, что ChannelMessage можно отправлять только пользователям, которые находятся в сети одновременно. Другими словами, только пользователи, у которых созданы каналы, могут получить сообщение, потому что метод sendMessage объекта ChannelService должен иметь в качестве первого аргумента clientId, который другой пользователь использовал для создания своего канала.

Я правильно понимаю?

И если да, что еще вы бы порекомендовали для реализации простого приложения чата, в котором пользователи должны иметь список друзей, из которого они выбирают друга для общения? Является ли XMPP допустимым вариантом?

(Моему приложению также требуется функция "Добавить друга в ваш список" и некоторый способ хранения информации (пользователей и сообщений) в базе данных, вероятно, API Datastore, так как он единственный, который предлагает бесплатную квоту с ежедневными ограничениями)

Пожалуйста помоги. Спасибо!

1 ответ

Решение

Вы можете использовать канал api + datastore. Вы должны отслеживать пользователей, когда они подключены и когда они отключаются от канала, см. Здесь. Когда они отключены, сохраните сообщение в хранилище данных и покажите его им, когда они в сети.

Другие вопросы по тегам