Я создаю клиент ejabberd xmpp для создания диаграмм, похожих на WhatsApp. Хотите понять, как WhatsApp синхронизирует контакты с сервером? Как WhatsApp узнает всех зарегистрированных пользователей на сервере и синхронизирует их с вашей адресной книгой?
Как WhatsApp синхронизирует контакты с ejabberd
Ответы (1)
Эта функция не связана с XMPP или ejabberd. Если вы хотите обнаружить контакт вашего пользователя, вам нужно реализовать эту функцию по-своему.
Вам необходимо загрузить анонимную версию адресной книги пользователя с хэшем номера телефона и электронной почты и сохранить ее на своем сервере. Когда другой пользователь с номером телефона или адресом электронной почты, совпадающим с этим хэшем, присоединяется к службе, вы можете найти, кто знает это, и выполнить операции, чтобы уведомить каждую сторону о том, что они обе используют службу (и/или добавить их, например, в список).
Итак, это чисто пользовательское расширение для ejabberd, которое вам нужно будет реализовать.
person
Mickaël Rémond
schedule
28.09.2015
Спасибо Ремонд. Это имеет смысл для меня, я также ознакомился с юридической политикой WhatsApp, и она также упоминается там.
- person Kartik Patel; 29.09.2015
Я также создаю систему для уведомления пользователей, когда кто-то присоединяется. Я могу придумать несколько вещей для реализации - создайте канал pubsub для каждого из ваших контактов и подпишитесь на него. Когда кто-то подписывает публикацию на нем. Количество каналов будет большим. Или сохраните заинтересованных пользователей в таблице. Отправьте сообщение через ejabberdctl, когда он зарегистрируется.
- person user2223032; 12.11.2015
Для этого не нужен канал. Это просто отправка отдельных сообщений для всех людей, у которых есть человек, который присоединился к списку контактов. Это касается только структуры данных.
- person Mickaël Rémond; 12.11.2015