2012-01-23 2 views
2

Я установил экземпляр Heroku, чтобы иметь Memcached, поэтому теперь у меня есть переменные env и mEMCACHE_SERVERS и MEMCACHE_USERNAME. Как использовать их с любой из существующих библиотек memcached node.js? Кажется, что они принимают только хост и порт (я предполагаю, что порт по умолчанию - 11211?).Node.js на Heroku - использование Memcached

Благодаря

ответ

1

На сегодняшний день, нет библиотеки Node доступны, которая поддерживает этот сценарий. Для memcached экземпляров Heroku для аутентификации используется SASL. Ни одна из доступных в настоящее время библиотек не поддерживает это, и there doesn't seem to be much momentum to add support, either.

Если вы хотите попытаться реализовать это самостоятельно, возможно, стоит взглянуть на sasljs, который является привязкой узла вокруг GNU SASL. Лучше всего, скорее всего, в fork node-memcached и добавьте поддержку SASL.

+0

sasljs только реализует серверную часть SASL, поэтому он не помогает в этом случае использования :( Я был бы очень рад добавить поддержку SASL для node-memcached, а 3rd-Eden кажется [рад принять его ] (https://github.com/3rd-Eden/node-memcached/issues/15), но, боюсь, я понятия не имею, с чего начать ... –

+0

@NearPrivman Вы правы, sasljs только делает на стороне сервера.Однако он связывает GSASL, который также может использоваться для клиента SASL (http://www.gnu.org/software/gsasl/manual/gsasl.html#Examples). Одним из вариантов может быть fork sasljs и добавляет привязки для всех, что необходимо от GSASL для реализации клиента SASL. По сути дела, нет тривиальной задачи. –

-1

https://github.com/elbart/node-memcache

var client = new memcache.Client('11211', 'http://xxxx:[email protected]');

+0

Кажется, что node-memcache зависит от node.js> = 0.6, в то время как Heroku требует версию 0.4.7. – Jusso

+0

Это не похоже, работают на узле 0.6 либо , @ Радослав, ты это пробовал, или ты просто угадываешься здесь? Я получаю '[Ошибка: getaddrinfo EFAULT]' –

+0

BTW, @Jusso, Heroku теперь поддерживает Node 0.6, вам просто нужно указать его в своем пакете. Json https://devcenter.heroku.com/articles/nodejs-versions –

6

Как уже упоминалось выше, оба аддоны Memcache на Heroku поддерживает только двоичный протокол. Я написал библиотеку, MemJS, которая работает с этими аддонами (поддерживает SASL с бинарным протоколом и распознает переменные среды Heroku из коробки).

Смежные вопросы