예제 #1
0
        void ChannelsReadingThread(object state)
        {
            try {
                var provider = state as ProviderState;
                if (provider != null)
                {
                    var stream = provider.Stream;
                    while (true)
                    {
                        //_provider.Connect();
                        while (!stream.DataAvailable)
                        {
                            Thread.Sleep(this._provider.Configuration.ReceiveDelayms);
                        }
                        var operation = _provider.ReadString();

                        switch (operation)
                        {
                        case "subscribe":
                            var channel = _provider.ReadString();
                            var clients = _provider.ReadInt();
                            provider.Provider.RaiseChannelSubscribedEvent(channel);
                            break;

                        case "unsubscribe":
                            var uchannel = _provider.ReadString();
                            var uclients = _provider.ReadInt();
                            provider.Provider.RaiseChannelUnsubscribedEvent(uchannel);

                            if (uclients == 0)
                            {
                                return;
                            }
                            break;

                        case "message":
                            var mchannel = provider.Provider.ReadString();
                            // Modified by nclsp, 14:26 - 21/06/2018 - Reading message as binary instead of string.
                            var bmessage = provider.Provider.ReadData();
                            provider.Provider.RaiseBinaryMessageReceivedEvent(mchannel, bmessage);
                            break;

                        default:
                            break;
                        }
                    }
                }
                else
                {
                    Debug.Log("Provider null");
                }
            }
            catch (Exception e) {
                Debug.Log(e.StackTrace + e.Message);
            }
        }
예제 #2
0
        //
        public string this[string field]
        {
            get
            {
                return(_provider.ReadString(_provider.SendCommand(RedisCommand.HGET, _name, field)));
            }

            set
            {
                _provider.WaitComplete(_provider.SendCommand(RedisCommand.HSET, _name, field, value));
            }
        }
예제 #3
0
 public string this[string field]
 {
     [Description(CommandDescriptions.HGET)]
     get
     {
         return(_provider.ReadString(_provider.SendCommand(RedisCommand.HGET, _name, field)));
     }
     [Description(CommandDescriptions.HSET)]
     set
     {
         _provider.WaitComplete(_provider.SendCommand(RedisCommand.HSET, _name, field, value));
     }
 }
예제 #4
0
        void ChannelsReadingThread(object state)
        {
            var provider = state as ProviderState;

            if (provider != null)
            {
                var stream = provider.Stream;
                while (true)
                {
                    //_provider.Connect();

                    while (!stream.DataAvailable)
                    {
                        Thread.Sleep(this._provider.Configuration.ReceiveDelayms);
                    }

                    var operation = _provider.ReadString();

                    switch (operation)
                    {
                    case "subscribe":
                        var channel = _provider.ReadString();
                        var clients = _provider.ReadInt();
                        provider.Provider.RaiseChannelSubscribedEvent(channel);
                        break;

                    case "unsubscribe":
                        var uchannel = _provider.ReadString();
                        var uclients = _provider.ReadInt();
                        provider.Provider.RaiseChannelUnsubscribedEvent(uchannel);

                        if (uclients == 0)
                        {
                            return;
                        }
                        break;

                    case "message":
                        var mchannel = _provider.ReadString();
                        var message  = _provider.ReadString();
                        provider.Provider.RaiseMessageReceivedEvend(mchannel, message);
                        break;

                    default:
                        break;
                    }
                }
            }
        }
예제 #5
0
        void f_key_ids_selected(string id)
        {
            lblKeySelected_Time.Text = "";
            lblKeyID_Selected.Text   = "";
            txtEditor.Text           = "";

            if (id != null && m_key_ids.Length > 0 && m_key_selected != null)
            {
                //string id = m_key_ids[index];
                lblKeySelected_Time.Text = id;
                lblKeyID_Selected.Text   = id;

                string data = "";
                try
                {
                    data = m_redis.ReadString(m_redis.SendCommand(RedisCommand.HGET, m_key_selected.key_full, id));
                    var    o    = JsonConvert.DeserializeObject(data);
                    string json = JsonConvert.SerializeObject(o, Formatting.Indented);
                    txtEditor.Text = json;
                }
                catch (Exception e)
                {
                    txtEditor.Text = data;
                }
            }
        }
예제 #6
0
        public async Task <string> Get(string key)
        {
            string ret = "";
            await Task.Run(() => {
                client.SendCommand(RedisCommand.GET, key);
                ret = client.ReadString();
            });

            return(ret);
        }
예제 #7
0
    /// <summary>
    /// Tries to read redis command output as a string.
    /// </summary>
    /// <param name="redis"></param>
    /// <param name="commandId">the command to read the output</param>
    /// <returns>the string if success, else null.</returns>
    public static string RedisTryReadString(RedisDataAccessProvider redis, int commandId)
    {
        string value = null;

        try {
            value = redis.ReadString(commandId);
        } catch (Exception) {
            Debug.LogError("Failed to read string.");
        }
        return(value);
    }
예제 #8
0
 public string Pop()
 {
     return(_provider.ReadString(_provider.SendCommand(RedisCommand.SPOP, _name)));
 }
 public string Type(string key)
 {
     return(_provider.ReadString(_provider.SendCommand(RedisCommand.TYPE, key)));
 }
예제 #10
0
 public string Get()
 {
     return(_provider.ReadString(_provider.SendCommand(RedisCommand.GET, _name)));
 }