2016-07-11 25 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 @本地」爲='A6

消息@localhost'type ='chat'body ='Hi'xmlns ='jabber:client'/>

這不會將消息傳遞給其他用戶,也不會將其存儲在表中。我很確定我正在調用一個錯誤的函數。任何人都可以提供任何幫助。

回答

2

要調用正確的函數。

什麼,你可能會錯過:消息

  1. 監聽器「A6 @ localhost」的客戶端:我在閱讀文檔有一些功能

  2. 也許,服務器的名稱權。 「localhost」有問題。你可以在他自己的Web面板上檢查Openfire的真實服務名稱

  3. 要檢查它是否在Openfire中傳遞的消息,你可以檢查 OF的日誌(檢查調試一個,但可能你必須啓用它) 。 實時消息不存儲在數據庫上,只有羣聊的 而不是每次AND脫機消息。爲了不找到他們的分貝意味着什麼

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使用strophe插件來構建和發送消息。它公開了用於構建節的strophe $ msg消息構建器。它必須採用以下格式:

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

您需要添加一個正文節點,並在其中包含該消息的文本節點。

您還可以創建並添加自己的API方法和內部創建發送您的自定義節的方法,以及使用API​​揭露它。