Является ли GAE Channel API только для создания комнат чата, или его также можно использовать для реализации чатов 1-к-1?
Я пытаюсь создать простое приложение для чата GAE в java, в котором пользователи могли бы общаться друг с другом в разговорах один на один.
Я думал об использовании Channel API, но только что понял, что ChannelMessage можно отправлять только пользователям, которые находятся в сети одновременно. Другими словами, только пользователи, у которых созданы каналы, могут получить сообщение, потому что метод sendMessage объекта ChannelService должен иметь в качестве первого аргумента clientId, который другой пользователь использовал для создания своего канала.
Я правильно понимаю?
И если да, что еще вы бы порекомендовали для реализации простого приложения чата, в котором пользователи должны иметь список друзей, из которого они выбирают друга для общения? Является ли XMPP допустимым вариантом?
(Моему приложению также требуется функция "Добавить друга в ваш список" и некоторый способ хранения информации (пользователей и сообщений) в базе данных, вероятно, API Datastore, так как он единственный, который предлагает бесплатную квоту с ежедневными ограничениями)
Пожалуйста помоги. Спасибо!
1 ответ
Вы можете использовать канал api + datastore. Вы должны отслеживать пользователей, когда они подключены и когда они отключаются от канала, см. Здесь. Когда они отключены, сохраните сообщение в хранилище данных и покажите его им, когда они в сети.