[英]How to send chat messages using converse library
我將openfire用作XMPP服務器,並將converse用作客戶端庫。 我想從我的聊天窗口發送聊天消息到openfire。 為此,我想將文本發送到相反的方法,該方法會將消息發送到XMPP服務器。 我正在嘗試使用以下方式發送消息:
var msg = converse.env.$msg({
from: 'a1@localhost',
to: 'a6@localhost',
type: 'chat',
body: "Hi"
});
converse.send(msg);
但這會在websocket的控制台網絡中發送以下幀:
消息從='a1 @ localhost'到='a6 @ localhost'type ='聊天'body ='Hi'xmlns ='jabber:client'/>
這不會將消息傳輸到其他用戶,也不會將其存儲在表中。 我非常確定我調用了錯誤的函數。 任何人都可以提供任何幫助。
您正在調用正確的函數。
您可能會錯過的地方:
“ a6 @ localhost”客戶端中消息的偵聽器:正如我在文檔中閱讀的那樣,功能很少
可能是服務器的正確名稱。 “本地主機”有問題。 您可以在自己的網絡面板上檢查Openfire的真實服務名稱
https://conversejs.org/docs/html/development.html
converse.chats.open('buddy@example.com');
converse.chats.get('buddy@example.com');
converse.listen.on('message', function (event, messageXML) { ... });
語法錯誤。 conversejs使用strophe插件來構造和發送消息。 它公開了用於構造節的Strophe $ msg消息生成器。 必須采用以下格式:
converse.env.$msg({from: 'a1@localhost', to: 'a6@localhost', type: 'chat'}).c('body').t('Hi');
您需要添加一個正文節點,並在其中添加消息的文本節點。
您還可以創建和添加自己的api方法,並在內部創建一個發送自定義節的方法,並使用api公開它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.