whisperer
v0.1.0
Published
IRC-like client wrapper around `node-xmpp`
Downloads
5
Readme
What is this?
It's an IRC-like interface for XMPP Multi-User-Conferences (eg: chat rooms), back-ended by the lovely, node-xmpp.
It roughly implements XMPP's IRC command mapping
Usage
var Whisperer = require('whisperer')
, client = new Whisperer({
jid: '[email protected]'
password: 'your password here'
})
client.join({ jid: '[email protected]', nick: 'example' })
client.on('message', function(message) {
console.log(message.from + ': ' + message.body)
})
Methods
Whisperer
Constructor. Accepts on object with the following keys
- jid: Your full XMPP username ([email protected]/optionalresource)
- password: Your password
join
Joins a MUC. Accepts on object with the following keys
- jid: The address of the MUC ([email protected])
- nick: The nickname you want to use in this room
- password: (optional) The room's password
- lastSeen: (optional) JS Parse-able date for the last time you logged in. Instructs the chat server to send by any message history it has since that time
message
Sends a message to either a specific user, or the whole MUC. Accepts on object with the following keys
- jid: The address of the MUC ([email protected])
- message: The message you want to send
- nick: (optional) A user's nick to send a private message to
part
Leaves a MUC. Accepts on object with the following keys
- jid: The address of the MUC ([email protected])
- message: (optional) An optional parting message
nick
Changes your nickname in the room. Accepts on object with the following keys
- jid: The address of the MUC ([email protected])
- nick: Your new nickname in this room
topic
Changes the topic for the room. Accepts on object with the following keys
- jid: The address of the MUC ([email protected])
- topic: The new topic of the room
invite
Invites a user to the room. Accepts on object with the following keys
- jid: The address of the MUC ([email protected])
- user: The full JID of the user you're inviting
- message: A brief message to the user
Events
online
Emitted when the client connects. No payload
error
Emitted when the client encounters an error; example payload
{
"from": "[email protected]",
"to": "[email protected]",
"type": "error",
"error": {
"code": "404",
"type": "cancel",
"message": "item-not-found"
}
}
message
Emitted when a user in the room sends a message, or the room plays back the message history when you log in (look at the timestamp!)
Example payload:
{
"from": "[email protected]",
"to": "[email protected]",
"type": "groupchat",
"body": "Whattup!?",
"delay": {
"stamp": "2013-04-24T03: 32: 41Z",
"from": "[email protected]"
}
}
presence
Emitted when the a user enters or exits the room, or changes their metadata (nickname, permissions, etc..)
Example payload:
{
"from": "[email protected]/user",
"to": "[email protected]",
"item": {
"affiliation": "owner",
"role": "moderator"
},
"status": {
"code": "201"
}
}