diff --git a/README.md b/README.md index a3f4ae4..353eee5 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,9 @@ import ( func main() { config := xmpp.Config{ - Address: "localhost:5222", + TransportConfiguration: xmpp.TransportConfiguration{ + Address: "localhost:5222", + }, Jid: "test@localhost", Credential: xmpp.Password("Test"), StreamLogger: os.Stdout, diff --git a/_examples/xmpp_echo/xmpp_echo.go b/_examples/xmpp_echo/xmpp_echo.go index 63e36b6..5654a2b 100644 --- a/_examples/xmpp_echo/xmpp_echo.go +++ b/_examples/xmpp_echo/xmpp_echo.go @@ -16,8 +16,7 @@ import ( func main() { config := xmpp.Config{ TransportConfiguration: xmpp.TransportConfiguration{ - // Address: "localhost:5222", - Address: "ws://127.0.0.1:5280/xmpp", + Address: "localhost:5222", }, Jid: "test@localhost", Credential: xmpp.Password("test"), diff --git a/_examples/xmpp_websocket/xmpp_websocket.go b/_examples/xmpp_websocket/xmpp_websocket.go new file mode 100644 index 0000000..428a1d1 --- /dev/null +++ b/_examples/xmpp_websocket/xmpp_websocket.go @@ -0,0 +1,48 @@ +/* +xmpp_websocket is a demo client that connect on an XMPP server using websocket and prints received messages.ß +*/ + +package main + +import ( + "fmt" + "log" + "os" + + "gosrc.io/xmpp" + "gosrc.io/xmpp/stanza" +) + +func main() { + config := xmpp.Config{ + TransportConfiguration: xmpp.TransportConfiguration{ + Address: "wss://localhost:5443/ws", + }, + Jid: "test@localhost", + Credential: xmpp.Password("test"), + StreamLogger: os.Stdout, + } + + 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 stanza.Packet) { + msg, ok := p.(stanza.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) +}