public string Subscribe(string channel, SubscribeCallback cb) { subscriber.Subscribe(channel); var callbackGuid = genGuid(); if (!subscribeCallbacks.ContainsKey(channel)) { subscribeCallbacks[channel] = new Dictionary <string, SubscribeCallback>(); } subscribeCallbacks[channel][callbackGuid] = cb; if (channels.Contains(channel)) { return(callbackGuid); } channels.Add(channel); var msg = new Message { cmd = Message.Cmd.SUBSCRIBE, source_component_guid = guid, identifier = channel, payload = stringToByteArray(".") }; publisher.Publish(proxyGuid, ref msg); return(callbackGuid); }
private bool Connect() { if (isConnecting) { return(false); } isConnecting = true; try { var ret = redis.ZRevRange("ZSET:PROXIES", 0, 0); if (ret.Length < 1) { return(false); } string buf = System.Text.Encoding.UTF8.GetString(ret[0]); var r = buf.Split('#'); string _proxyGuid = r[0]; proxyGuid = _proxyGuid; string connectionString = r[1]; requester = new Requester(guid, connectionString, publisherPort); var sub = requester.GetSubscriberConnectionString(); if (sub == String.Empty) { return(false); } subscriber = new Subscriber(sub, _proxyGuid, guid); isConnecting = false; foreach (var c in channels) { subscriber.Subscribe(c); } return(true); } catch (System.Exception e) { log.ErrorFormat("Exception on ESBClient.Connect(): {0}", e.ToString()); isConnecting = false; return(false); } }
private bool Connect() { if (isConnecting) return false; isConnecting = true; try { var ret = redis.ZRevRange("ZSET:PROXIES", 0, 0); if (ret.Length < 1) { return false; } string buf = System.Text.Encoding.UTF8.GetString(ret[0]); var r = buf.Split('#'); string _proxyGuid = r[0]; proxyGuid = _proxyGuid; string connectionString = r[1]; requester = new Requester(guid, connectionString, publisherPort); var sub = requester.GetSubscriberConnectionString(); if (sub == String.Empty) return false; subscriber = new Subscriber(sub, _proxyGuid, guid); isConnecting = false; foreach (var c in channels) { subscriber.Subscribe(c); } return true; } catch (System.Exception e) { log.ErrorFormat("Exception on ESBClient.Connect(): {0}", e.ToString()); isConnecting = false; return false; } }