Я привык редактировать около 30% своих сообщений в Skype. Также я ожидаю, что мои сообщения будут доставлены в конечном итоге независимо от того, находится ли собеседник в сети сейчас или нет (т. е. в конечном итоге сообщение придет, когда мы оба будем в сети).
Хотя я пока не видел этих функций в Jabber.
Какие клиенты XMPP (или какие расширения протокола) мне следует использовать для поддержкиудобныйчат?
На самом деле хочу, чтобы чат был больше похож на вики (поместивссылки, а также редактирование сообщений коллег, история изменений, некоторое форматирование), но простое использование программного обеспечения вики — это не то (нет нормальной истории контактов, нет обычных уведомлений, нет «использование — это набор текста...»).
решение1
Также я ожидаю, что мои сообщения будут доставлены в конечном итоге независимо от того, находится ли мой собеседник в сети или нет (т.е. в конечном итоге сообщение придет, когда мы оба будем в сети).
XMPP-серверы/клиенты обычно поддерживают отправку сообщений офлайн-контактам. Эти XEP могут быть релевантны (возможно, их больше):
Я привык редактировать около 30% своих сообщений в Skype.
Я не знаю, как Skype это реализовал, но есть XEP для редактированияпоследнийсообщение отправлено.
XEP-0308: Исправление последнего сообщения:
При отправке сообщения люди часто допускают опечатки и отправляют последующее сообщение для их исправления. Эта спецификация позволяет отправляющему клиенту пометить второе сообщение как исправление первого.
Я думаюОдна командареализовал эту функцию (но я не уверен, никогда не пользовался этим клиентом). Возможно, есть и другие клиенты.
/редактировать: как заметил Заш,Быстрыйтоже поддерживает.
решение2
В 2009 году у меня был довольно спорный доклад по этому поводу на FOSDEM в XMPP DevRoom.
Главное: даже если ваш клиент поддерживает редактирование сообщений, вы не можете гарантировать (если только вы не создаете внутреннюю сеть), что принимающая сторона будет его поддерживать.
Вот в чем фокус со Skype: у Skype был только один клиент от одного поставщика, который назывался Skype, покаоченьнедавно, когда они начали распространять SkypeSDK, что позволило производителям автомобилей, производителей телевизоров и т. д. создавать клиенты Skype. Но даже эти клиенты построены на Skype SDK, и поэтому большинство из них должно поддерживать это редактирование.
С XMPP, если вы используете публичную инфраструктуру Jabber, вы не можете быть уверены, какие серверы или клиенты используют ваши друзья, и есть только одно, в чем вы можете быть уверены: что они поддерживают RFC 3920 и 3921. (Да, я знаю, что это старые стандарты: вы не можете быть уверены, что они поддерживают новые).
Было бы легко сказать, что большинство ваших контактов будут контактами GTalk, использующими GMail, поэтому то, что не поддерживается GTalk в GMail, фактически не существует в мире Jabber, включая редактирование сообщений. Или, можно сказать, что есть некоторые пользователи Pidgin / Telepathy, с которыми вы много общаетесь, но, возможно, даже отправка файлов все еще остается для вас недосягаемой.
В интрасети ситуация иная, вы можете установить клиент, поддерживающий эту функцию (Swift упоминался в комментариях к предыдущему ответу), но даже в этом случае вы можете быть уверены только относительно внутренней сети связи.
Оказывается, иногда лучше создать службу обмена мгновенными сообщениями с нуля, чем использовать XMPP.