/// <summary> /// 订阅消息 /// </summary> /// <param name="channelPrefix"></param> /// <param name="action"></param> public void Subscribe(string channelPrefix, Action <RedisChannel, RedisValue> action) { DoWithRetry(() => { if (subcnn == null) { subcnn = new SERedisConnection(_sectionName, _dbIndex); } var pub = subcnn.GetSubscriber(); pub.Subscribe(new RedisChannel(channelPrefix, RedisChannel.PatternMode.Auto), action); }); }
/// <summary> /// 订阅消息 /// </summary> /// <param name="channelPrefix"></param> /// <param name="handler"></param> public void Subscribe(string channelPrefix, Action <string, string> handler) { DoWithRetry(() => { if (subcnn == null) { subcnn = new SERedisConnection(_sectionName, _dbIndex); } var pub = subcnn.GetSubscriber(); var action = new Action <RedisChannel, RedisValue>((c, v) => { handler.Invoke(c.ToString(), v.ToString()); }); pub.Subscribe(new RedisChannel(channelPrefix, RedisChannel.PatternMode.Auto), action); }); }
/// <summary> /// 发布消息 /// </summary> /// <param name="channelPrefix"></param> /// <param name="msg"></param> public void Publish(string channelPrefix, string msg) { DoWithRetry(() => { using (var cnn = new SERedisConnection(_sectionName, _dbIndex)) { var pub = cnn.GetSubscriber(); pub.PublishAsync(new RedisChannel(channelPrefix, RedisChannel.PatternMode.Auto), msg); } }); }