diff -r 5c6d6d51d3ba -r fb9bb98a8d70 id.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/id.go Fri Aug 30 17:24:39 2013 -0600 @@ -0,0 +1,29 @@ +package xmpp + +// Code to generate unique IDs for outgoing messages. + +import ( + "fmt" +) + +var id <-chan string + +func init() { + // Start the unique id generator. + idCh := make(chan string) + id = idCh + go func(ch chan<- string) { + id := int64(1) + for { + str := fmt.Sprintf("id_%d", id) + ch <- str + id++ + } + }(idCh) +} + +// This function may be used as a convenient way to generate a unique +// id for an outgoing iq, message, or presence stanza. +func NextId() string { + return <-id +}