mirror of https://github.com/go-redis/redis.git
Rewrite PubSub example.
This commit is contained in:
parent
cdfab22180
commit
f79308a137
|
@ -2,7 +2,9 @@ package redis_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
"gopkg.in/redis.v3"
|
"gopkg.in/redis.v3"
|
||||||
)
|
)
|
||||||
|
@ -125,19 +127,37 @@ func ExamplePubSub() {
|
||||||
defer pubsub.Close()
|
defer pubsub.Close()
|
||||||
|
|
||||||
err := pubsub.Subscribe("mychannel")
|
err := pubsub.Subscribe("mychannel")
|
||||||
_ = err
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
msg, err := pubsub.Receive()
|
err = client.Publish("mychannel", "hello").Err()
|
||||||
fmt.Println(msg, err)
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
pub := client.Publish("mychannel", "hello")
|
for {
|
||||||
_ = pub.Err()
|
msgi, err := pubsub.ReceiveTimeout(100 * time.Millisecond)
|
||||||
|
if err != nil {
|
||||||
|
if neterr, ok := err.(net.Error); ok && neterr.Timeout() {
|
||||||
|
// There are no more messages to process. Stop.
|
||||||
|
break
|
||||||
|
}
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
msg, err = pubsub.Receive()
|
switch msg := msgi.(type) {
|
||||||
fmt.Println(msg, err)
|
case *redis.Subscription:
|
||||||
|
fmt.Println(msg.Kind, msg.Channel)
|
||||||
|
case *redis.Message:
|
||||||
|
fmt.Println(msg.Channel, msg.Payload)
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unknown message: %#v", msgi))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Output: subscribe: mychannel <nil>
|
// Output: subscribe mychannel
|
||||||
// Message<mychannel: hello> <nil>
|
// mychannel hello
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExampleScript() {
|
func ExampleScript() {
|
||||||
|
|
Loading…
Reference in New Issue