Das Paket-xmpp bietet die Möglichkeit, Sofortnachrichten an und von Nutzern von XMPP-kompatiblen Diensten zu senden und zu empfangen.
So senden Sie eine Nachricht:
m := &xmpp.Message{ To: []string{"kaylee@example.com"}, Body: `Hi! How's the carrot?`, } err := m.Send(c)
So empfangen Sie Nachrichten
func init() { xmpp.Handle(handleChat) } func handleChat(c context.Context, m *xmpp.Message) { // ... }
Variablen
ErrPresenceUnavailable, ErrInvalidJID
var (
ErrPresenceUnavailable = errors.New("xmpp: presence unavailable")
ErrInvalidJID = errors.New("xmpp: invalid JID")
)
Funktionen
func GetPresence
Mit GetPresence wird die Präsenz eines Nutzers abgerufen. Wenn die Von-Adresse ein leerer String ist, wird der Standardwert (yourapp@appspot.com/bot) verwendet. Mögliche Rückgabewerte sind "", "away", "dnd", "chat", "xa". ErrPresenceUnavailable wird zurückgegeben, wenn die Präsenz nicht verfügbar ist.
func GetPresenceMulti
Mit GetPresenceMulti wird die Präsenz mehrerer Nutzer abgerufen. Wenn die Von-Adresse ein leerer String ist, wird der Standardwert (yourapp@appspot.com/bot) verwendet. Mögliche Rückgabewerte sind "", "away", "dnd", "chat", "xa". Wenn keine Präsenz verfügbar ist, wird ein appengine.MultiError zurückgegeben.
func Handle
Handle ordnet "f" für den Aufruf eingehender XMPP-Nachrichten an. Es werden nur Nachrichten vom Typ "Chat" oder "Normal" verarbeitet.
func Invite
Invite sendet eine Einladung. Wenn die Von-Adresse ein leerer String ist, wird der Standardwert (yourapp@appspot.com/bot) verwendet.
Meldung
type Message struct {
// Sender is the JID of the sender.
// Optional for outgoing messages.
Sender string
// To is the intended recipients of the message.
// Incoming messages will have exactly one element.
To []string
// Body is the body of the message.
Body string
// Type is the message type, per RFC 3921.
// It defaults to "chat".
Type string
// RawXML is whether the body contains raw XML.
RawXML bool
}
"Message" steht für eine eingehende Chatnachricht.
func (*Message) Send
"Send" sendet eine Nachricht. Wenn Fehler bei bestimmten Empfängern auftreten, lautet der Fehler appengine.MultiError.
Präsenz
type Presence struct {
// Sender is the JID (optional).
Sender string
// The intended recipient of the presence update.
To string
// Type, per RFC 3921 (optional). Defaults to "available".
Type string
// State of presence (optional).
// Valid values: "away", "chat", "xa", "dnd" (RFC 3921).
State string
// Free text status message (optional).
Status string
}
Präsenz repräsentiert ein ausgehendes Präsenzupdate.
func (*Presence) Send
"Send" sendet eine Präsenzaktualisierung.