2016-07-11 4 views
0

Я использую openfire как сервер XMPP и использую обратную в качестве клиентской библиотеки. Я хочу отправить сообщение чата из окна чата в openfire. Для этого я хочу отправить текст на обратный метод, который отправит сообщение на сервер XMPP. Я пытаюсь отправить сообщение с помощью следующего:Как отправлять сообщения чата с помощью обратной библиотеки

var msg = converse.env.$msg({ 
     from: '[email protected]', 
     to: '[email protected]', 
     type: 'chat', 
     body: "Hi" 
    }); 
    converse.send(msg); 

Но это посылает следующий кадр в сеть консоли в WebSocket:

сообщение от = «a1 @ lokalny_host» на а6 = ' @localhost 'type =' chat 'body =' Hi 'xmlns =' jabber: client '/>

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

ответ

2

Вы вызываете правильную функцию.

Что вы вероятно, не пропустите:

  1. Слушатель сообщений в «a6 @ LOCALHOST» клиент: как я прочитал в документации есть несколько функций

  2. Вероятно, правильное название сервера , «localhost» имеет проблему. Вы можете проверить Openfire для реального имени сервиса на своем собственном веб-панели

  3. Чтобы проверить, является ли сообщение оно доставлено в Openfire вы можете проверить OF Вход (проверить отладки один, но, вероятно, вам придется включить его) , Сообщения в режиме реального времени не хранятся в базе данных, а только групповые сообщения , а не каждый раз и автономные сообщения. Для того, чтобы не найти их на БД ничего не значит

https://conversejs.org/docs/html/development.html

converse.chats.open('[email protected]'); 
converse.chats.get('[email protected]'); 
converse.listen.on('message', function (event, messageXML) { ... }); 
1

Синтаксис является неправильным. conversejs использует строф-плагин для создания и отправки сообщений. Он предоставляет построитель сообщений строфы $ msg для построения строф. Он должен быть в следующем формате:

converse.env.$msg({from: '[email protected]', to: '[email protected]', type: 'chat'}).c('body').t('Hi'); 

Вам нужно добавить узел тела и внутри него текстовый узел для сообщения.

Вы также можете создать и добавить свой собственный метод api и внутренне создать метод, который отправляет вашу пользовательскую строфу и выставляет ее с помощью api.