You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Mickael Remond 4d015e5b29
With go modules, we should be able to remove import comments
5 years ago
_examples Mention Namespace Delegation and Privileged Entity support 5 years ago
cmd/xmpp-check With go modules, we should be able to remove import comments 5 years ago
.gitignore Ignore directory where I put private notes 5 years ago
CODE_OF_CONDUCT.md Add CoC and contribution guide 5 years ago
CONTRIBUTING.md Add CoC and contribution guide 5 years ago
Dockerfile Run tests on Golang 1.12 5 years ago
LICENSE Moving XMPP library to Fluux project 6 years ago
README.md Mention Namespace Delegation and Privileged Entity support 5 years ago
auth.go With go modules, we should be able to remove import comments 5 years ago
backoff.go With go modules, we should be able to remove import comments 5 years ago
backoff_test.go Add Client Manager to monitor connection state and trigger reconnect (#39) 5 years ago
check_cert.go With go modules, we should be able to remove import comments 5 years ago
client.go With go modules, we should be able to remove import comments 5 years ago
client_test.go With go modules, we should be able to remove import comments 5 years ago
codecov.yml Disable Codecov comments on PR 5 years ago
codeship-services.yml Add Codecov support 6 years ago
codeship-steps.yml Workaround Codeship coverage upload report issues 6 years ago
codeship.env.encrypted Add missing codecov token 6 years ago
component.go With go modules, we should be able to remove import comments 5 years ago
component_test.go With go modules, we should be able to remove import comments 5 years ago
config.go With go modules, we should be able to remove import comments 5 years ago
conn_error.go With go modules, we should be able to remove import comments 5 years ago
doc.go With go modules, we should be able to remove import comments 5 years ago
go.mod With go modules, we should be able to remove import comments 5 years ago
go.sum Move examples out of the cmd directory 5 years ago
iot_control.go With go modules, we should be able to remove import comments 5 years ago
iot_control_test.go With go modules, we should be able to remove import comments 5 years ago
iq.go With go modules, we should be able to remove import comments 5 years ago
iq_test.go wrong package import url let it failed 5 years ago
jid.go With go modules, we should be able to remove import comments 5 years ago
jid_test.go With go modules, we should be able to remove import comments 5 years ago
message.go With go modules, we should be able to remove import comments 5 years ago
message_test.go Refactor / clean up registry 5 years ago
msg_chat_markers.go With go modules, we should be able to remove import comments 5 years ago
msg_chat_state.go With go modules, we should be able to remove import comments 5 years ago
msg_oob.go With go modules, we should be able to remove import comments 5 years ago
msg_receipts.go With go modules, we should be able to remove import comments 5 years ago
msg_receipts_test.go Refactor / clean up registry 5 years ago
ns.go With go modules, we should be able to remove import comments 5 years ago
packet.go With go modules, we should be able to remove import comments 5 years ago
parser.go With go modules, we should be able to remove import comments 5 years ago
pep.go With go modules, we should be able to remove import comments 5 years ago
presence.go With go modules, we should be able to remove import comments 5 years ago
presence_test.go Update presence_test.go 5 years ago
pubsub.go With go modules, we should be able to remove import comments 5 years ago
registry.go With go modules, we should be able to remove import comments 5 years ago
registry_test.go With go modules, we should be able to remove import comments 5 years ago
router.go With go modules, we should be able to remove import comments 5 years ago
router_test.go Introduce Sender interface to abstract client sending in router handlers 5 years ago
session.go With go modules, we should be able to remove import comments 5 years ago
socket_proxy.go With go modules, we should be able to remove import comments 5 years ago
starttls.go With go modules, we should be able to remove import comments 5 years ago
stream.go With go modules, we should be able to remove import comments 5 years ago
stream_manager.go With go modules, we should be able to remove import comments 5 years ago
stream_test.go Add support for detecting Stream Management 5 years ago
tcp_server_mock.go With go modules, we should be able to remove import comments 5 years ago
test.sh Add test (and refactor them) for PR#15 (#18) 5 years ago
xmpp_test.go Update xmpp_test.go 5 years ago

README.md

Fluux 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 XMPP clients and components:

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

Examples

We have several examples to help you get started using Fluux XMPP library.

Here is the 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,
	}

	router := xmpp.NewRouter()
	router.HandleFunc("message", HandleMessage)

	client, err := xmpp.NewClient(config, router)
	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.NewStreamManager(client, nil)
	log.Fatal(cm.Run())
}

func HandleMessage(s xmpp.Sender, p xmpp.Packet) {
	msg, ok := p.(xmpp.Message)
	if !ok {
		_, _ = fmt.Fprintf(os.Stdout, "Ignoring packet: %T\n", p)
		return
	}

	_, _ = fmt.Fprintf(os.Stdout, "Body = %s - from = %s\n", msg.Body, msg.From)
	reply := xmpp.Message{PacketAttrs: xmpp.PacketAttrs{To: msg.From}, Body: msg.Body}
	_ = s.Send(reply)
}

Documentation

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