简体   繁体   中英

Send message programmatically with converse.js?

I am using converse.js to provide chat functionality. I am looking for a way to send some messages thru the API based on other buttons in the rest of the system.

 var chat = converse.chats.open(jid); chat.open(); chat.sendMessage(message);

chat.sendMessage() fails because the chatbox that has been returned only has limited functionality. https://conversejs.org/docs/html/development.html#the-chats-grouping

Should I override the wrappedChatBox functionality or is there a cleaner way to send a message? https://github.com/jcbrand/converse.js/blob/0746f2aa682b3a03a5c04a94570352e6921cde86/src/converse-core.js#L273

This is probably a bit more lower-level than you'd like, but you can send message stanzas via converse.send(stanza);

So, to send a chat message:

var msg = converse.env.$msg({
     from: 'juliet@example.com/balcony',
     to:'romeo@example.net',
     type:'chat'
});
converse.send(msg);

That said, I think the wrapper can be extended to add a send method there as well (check in next release).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM