Я искал небольшого хостинг-провайдера, на котором я мог бы запустить node.js, чтобы проверить некоторые эксперименты с WebSocket, и это мой аккаунт, чтобы вы тоже могли поиграть.
Я должен добавить, прежде чем я продолжу, что это не сложно, если вы знаете, что делаете (а я сам был на 80% от этого) согласно:
@rem с момента вашего последнего твита (примерно 20 минут) я купил фрагмент Slicehost за 20 $ и запустил на нем пример сервера #nodejs.
Slicehost
Я попробовал Rackspace Cloud за 11 долларов в месяц, чтобы начать с него, но после завершения регистрации мне сказали, что нужно позвонить мне, чтобы завершить проверку. Меня не было дома, поэтому мне не позвонили. Кроме того, с тех пор, как я переехал, мой банковский счет в данный момент находится в странном состоянии. Достаточно сказать, что учетная запись никогда не была завершена, и я не мог получить доступ к серверу. Поэтому я быстро отменил и посмотрел на регистрацию в Slicehost.
Регистрация Slicehost была очень легкой — я начал с самого маленького варианта. Одна форма для заполнения и сервер был в рабочем состоянии. Удивительно легко. Они предварительно выбрали для меня дистрибутив «Ubuntu 8.04.2 LTS (hardy)», который, если бы меня попросили выбрать один из дистрибутивов, я бы даже не догадывался, что будет хорошей отправной точкой в противном случае: 8, 9, 10? Кто знает, я просто хотел начать. Отлично.
Сразу мой сервер был запущен. Я попал в один блок безопасности, который вы вряд ли попадете, потому что я регистрировался из Великобритании, но получал доступ из Швейцарии (так как я все еще был в отпуске), но служба поддержки уведомила меня о проблеме безопасности (которая заблокировала мой сервер). ) и буквально все было отсортировано и решено в течение 10 минут. Я от всей души благодарю их поддержку за скорость и личный контакт, с которым они разбирались.
Итак, готовимся. Мне нужно следующее:
- Мой собственный аккаунт, а не root
- Git (чтобы я мог клонировать репозитории)
- Node.js (и, следовательно, также компиляторы c ++ и т. Д.)
- Сервер WebSocket
Настройка сервера Ubuntu
Slicehost имеет превосходную вики с инструкциями здесь:
Начало работы с новым ломтиком Ubuntu
Я следовал инструкциям вплоть до «прокачки твоего приглашения» (так как у меня есть собственный яд). Это было сделано пользователем конфигурации, и теперь я мог sudo и root был заблокирован.
Установка Git
Git был прост, хотя я немного обошел дома. Просто беги:
sudo apt-get install git-core
Теперь Git был установлен.
Установка компиляторов и Node.js
Получение узла было простым, так как все, что мне нужно было сделать, это клонировать репозиторий:
git clone git://github.com/ry/node.git
На самом деле проблема заключалась в построении Node — я не устанавливал компиляторы, c ++, cc, gcc и т. Д. Используя комбинацию подходов hit и miss и shotgun, это было также просто:
sudo aptitude install build-essential -y
Это дало мне все компиляторы, поэтому я смог построить.
Теперь я собираюсь ускорить мой опыт и вместо того, чтобы объезжать дома, просто скажу, что вы хотите стабильную сборку, а не последнюю. WebSockets не работает должным образом с последней сборкой 0.1.28, а стабильная сборка — 0.1.26. Так что вам нужно переключить ветки (из каталога узла ):
git checkout origin/stable
Теперь вы готовы строить. На самом деле мне пришлось много потрудиться, чтобы понять, что я не был в стабильной версии, так что считайте это одолжением! ? Теперь мы готовы к сборке:
./configure
make
sudo make install
Следующая остановка, давайте запустим сервер WebSocket
WebSocket Server
Я лично хотел поиграть с потоковым API-интерфейсом , для этого есть возможность сделать git-репо!
Я создал веб- каталог в своем домашнем каталоге, чтобы я мог запустить свои эксперименты, оттуда я запускаю:
git clone git://github.com/andregoncalves/twitter-nodejs-websocket.git
Оттуда я скинул сервер (по умолчанию он слушает «iphone»):
cd twitter-nodejs-websocket
node server.js <username> <password>
Теперь на моем другом «обычном» сервере (хотя гладкость slicehost, я сейчас думаю о портировании на все мои сайты) размещается простая веб-страница (из примера в git repo), которая транслирует последние твиты, найденные сервером и должен просматриваться в браузере с поддержкой WebSocket, например, Google Chrome (dev channel) или Webkit ночью: http://rem.im/relay-tweets.html (обратите внимание, что я пока запусту эту демонстрацию, но это вполне может быть снят в будущем). Вот снимок экрана на случай, если я выключу его и продолжу:
основной код для запуска сокета просто такой:
ws = new WebSocket("ws://<host>:8080/");
ws.onmessage = function(event) {
var data = JSON.parse(event.data);
var $p = $(twitterlib.render(data)); // uses Twitterlib.js
if ($('#tweets > li').length > 15) {
$('#tweets >li:last').slideDown(100, function () {
$(this).remove();
});
}
$('#tweets').prepend($p);
$p.slideDown(140);
};
ws.onclose = function() {
alert("socket closed");
};
Без сомнения, я опубликую статью на HTML5 Doctor о WebSockets и напишу об этом в грядущем выпуске HTML5, который я пишу с Брюсом Лоусоном .