2019-06-08 11:15:51 +02:00
2019-05-16 17:48:53 +02:00
2019-06-07 15:23:23 +02:00
2019-05-16 18:01:47 +02:00
2018-12-26 18:50:01 +01:00
2019-05-31 19:08:20 +02:00
2018-01-01 18:57:56 +01:00
2019-01-21 16:24:26 +01:00
2018-12-26 18:50:01 +01:00
2019-06-04 18:59:34 +02:00
2019-06-07 15:23:23 +02:00
2019-06-07 15:23:23 +02:00
2019-06-07 16:00:58 +02:00
2019-06-05 08:41:40 +02:00
2019-06-05 08:51:21 +02:00
2018-01-01 18:12:33 +01:00
2019-06-04 18:47:44 +02:00
2018-12-26 18:50:01 +01:00
2018-12-26 18:50:01 +01:00
2019-06-05 08:41:40 +02:00
2019-05-16 18:03:44 +02:00
2019-06-04 18:47:44 +02:00
2018-12-26 18:50:01 +01:00
2019-05-16 18:04:09 +02:00

Go XMPP

Codeship Status for FluuxIO/xmpp GoDoc GoReportCard codecov

Fluux XMPP is a Go XMPP library, focusing on simplicity, simple automation, and IoT.

The goal is to make simple to write simple adhoc XMPP clients:

  • For automation (like for example monitoring of an XMPP service),
  • For building connected "things" by plugging them on an XMPP server,
  • For writing simple chatbot to control a service or a thing.
  • For writing XMPP servers components.

The library is designed to have minimal dependencies. For now, the library does not depend on any other library.

Example

Here is a demo "echo" client:

package main

import (
	"fmt"
	"log"
	"os"

	"gosrc.io/xmpp"
)

func main() {
	config := xmpp.Config{
		Address:      "localhost:5222",
		Jid:          "test@localhost",
		Password:     "test",
		PacketLogger: os.Stdout,
		Insecure:     true,
	}

	client, err := xmpp.NewClient(config)
	if err != nil {
		log.Fatalf("%+v", err)
	}

	// If you pass the client to a connection manager, it will handle the reconnect policy
	// for you automatically.
	cm := xmpp.NewClientManager(client, nil)
	err = cm.Start()
	if err != nil {
		log.Fatal(err)
	}

	// Iterator to receive packets coming from our XMPP connection
	for packet := range client.Recv() {
		switch packet := packet.(type) {
		case xmpp.Message:
			_, _ = fmt.Fprintf(os.Stdout, "Body = %s - from = %s\n", packet.Body, packet.From)
			reply := xmpp.Message{PacketAttrs: xmpp.PacketAttrs{To: packet.From}, Body: packet.Body}
			_ = client.Send(reply)
		default:
			_, _ = fmt.Fprintf(os.Stdout, "Ignoring packet: %T\n", packet)
		}
	}
}

Documentation

Please, check GoDoc for more information: gosrc.io/xmpp

Description
Native Go XMPP library
Readme 1.2 MiB
Languages
Go 99.9%