Skip to content

krutcha/go-jabber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Author: Chad Krueger <[email protected]>

This Package provides basic XMPP protocol support in GO.

================================================================================
 DEPENDENCIES 
================================================================================
goinstall github.com/sloonz/go-iconv/src
goinstall github.com/jteeuwen/go-pkg-xmlx

================================================================================
 USAGE
================================================================================

 $ cd /path/to/code/dir
 $ git clone http://github.com/krutcha/go-jabber.git
 $ cd go-jabber
 $ make

================================================================================
 API
================================================================================

 There are examples in the /example directory demonstrating use of the 
 go-jabber pkg to interract with an xmpp server.  Also there is a diagram
 in /doc/gojabber.odg which gives the jist of how the client pkg is meant
 to work.
 
 step 1: open a connection to the XMPP server
         
         jcon, err := gojabber.SpawnConnection(host, domain, 
                      username, password, port, useTLS)
         
         This will open a connection and begin the authentication process,
         obtain a roster, and begin to recieve presence updates.  jcon is
         a struct containing useful connection related information.
         
step 2: register callbacks

        currently 4 callbacks are supported and can be registered as follows:

        -1 avatar updates - user photo has changed
        jcon.ConnectHook_AvatarUpdate(
            func(host string, avatar gojabber.AvatarUpdate) {code})

        -2 incoming messages - chat messages from users
        jcon.ConnectHook_Msg(
            func(host string, msg gojabber.MessageUpdate) {code})

        -3 typing notification - if a user is actively typing a message to you
        jcon.ConnectHook_Typing(
            func(host string, JID string) {code})

        -4 status updates - online, offline, away etc
        jcon.ConnectHook_Status(
            func(host string, JID string, status string) {code})
        
 step 3: call call commands
 
         just 2 commands supported right now to call on a jabber connection:
         
         -1 Disconnect() - kill off the connection, clean up it's channels etc
         -2 SendMessage(msg string, contact *Contact, fromJID string)
                         - send a chat message to a user

 For examples of use of all of the above, see /example/command_line.go 
 
 KNOWN ISSUES: 
       -sync mechanisms added for access to shared JabberCon structs are not 
        enforced
        
================================================================================
 LICENSE
================================================================================

This code is subject to a 1-clause BSD license.
It's contents can be found in the LICENSE file.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages