@@ -13,7 +13,8 @@ var client *redis.Client
1313
1414func init () {
1515 client = redis .NewClient (& redis.Options {
16- Addr : ":6379" ,
16+ Addr : ":6379" ,
17+ DialTimeout : 10 * time .Second ,
1718 })
1819 client .FlushDb ()
1920}
@@ -247,30 +248,32 @@ func ExamplePubSub_Receive() {
247248 }
248249 defer pubsub .Close ()
249250
250- err = client .Publish ("mychannel2" , "hello" ).Err ()
251+ n , err : = client .Publish ("mychannel2" , "hello" ).Result ()
251252 if err != nil {
252253 panic (err )
253254 }
255+ fmt .Println (n , "clients received message" )
254256
255- for i := 0 ; i < 2 ; i ++ {
257+ for {
256258 // ReceiveTimeout is a low level API. Use ReceiveMessage instead.
257259 msgi , err := pubsub .ReceiveTimeout (time .Second )
258260 if err != nil {
259- panic ( err )
261+ break
260262 }
261263
262264 switch msg := msgi .(type ) {
263265 case * redis.Subscription :
264- fmt .Println (msg . Kind , msg .Channel )
266+ fmt .Println ("subscribed to" , msg .Channel )
265267 case * redis.Message :
266- fmt .Println (msg .Channel , msg .Payload )
268+ fmt .Println ("received" , msg .Payload , "from" , msg .Channel )
267269 default :
268- panic (fmt .Sprintf ("unknown message: %#v" , msgi ))
270+ panic (fmt .Errorf ("unknown message: %#v" , msgi ))
269271 }
270272 }
271273
272- // Output: subscribe mychannel2
273- // mychannel2 hello
274+ // Output: 1 clients received message
275+ // subscribed to mychannel2
276+ // received hello from mychannel2
274277}
275278
276279func ExampleScript () {
0 commit comments