Adds an example directly in README file to get a feel of the API

This commit is contained in:
Mickael Remond 2019-06-07 16:33:10 +02:00
parent 0865f4e35c
commit 3689448c90
No known key found for this signature in database
GPG key ID: E6F6045D79965AA3
2 changed files with 53 additions and 4 deletions

View file

@ -13,6 +13,57 @@ The goal is to make simple to write simple adhoc XMPP clients:
The library is designed to have minimal dependencies. For now, the library does not depend on any other library. The library is designed to have minimal dependencies. For now, the library does not depend on any other library.
## Usage ## Example
Here is a demo "echo" client:
```go
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](https://godoc.org/gosrc.io/xmpp) Please, check GoDoc for more information: [gosrc.io/xmpp](https://godoc.org/gosrc.io/xmpp)

View file

@ -1,5 +1,5 @@
/* /*
xmpp_client is a demo client that connect on an XMPP server and echo message received back to original sender. xmpp_echo is a demo client that connect on an XMPP server and echo message received back to original sender.
*/ */
package main package main
@ -30,8 +30,6 @@ func main() {
// for you automatically. // for you automatically.
cm := xmpp.NewClientManager(client, nil) cm := xmpp.NewClientManager(client, nil)
err = cm.Start() err = cm.Start()
// connection can be stopped with cm.Stop()
// connection state can be checked by reading cm.Client.CurrentState
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }