• Juick JavaScript Если у вас есть свободное время и желание сделать Juick лучше, предлагаю подумать над следующей JavaScript-задачей: нужно совместить новый интерфейс сайта и WebSockets API, чтобы новые комментарии к тредам мгновенно отображались в браузере, без перезагрузки страницы. Подробности в первом комментарии к этому треду.

Replies (4)

  • @ugnich, Интерфейс WebSockets доступен на порту 8080. Комментарии к любому публичному посту в формате JSON можно получить по адресу вида (цифра — номер поста):
    ws://juick.com:8080/replies/1
    Для тестирования можно использовать ленту всех комментариев ко всем постам:
    ws://juick.com:8080/replies

    Формат сообщений такой же, как и в выводе HTTP API:
    api.juick.com

    Пример работы с WebSockets:
    static.juick.com

    Форматирование текста сообщений (подсветка ссылок и т.п.) выполнять не нужно, это будет реализовано немного позже на стороне сервера.

    Когда приходит новый комментарий — нужно добавить его в конец списка комментариев на странице:
    dev.juick.com

    Бонус-задачи:
    — Реализовать добавление комментария в деревовидном представлении.
    — Новый комментарий должен быть подсвечен голубым цветом. При наведении мыши — подсветку убирать.
    — Показывать в заголовке страницы количество непрочитанных комментариев.

    Можно использовать jQuery. Если будет нужно добавить что-то на страницу или в API — пишите сюда, сделаем.
  • @ugnich, сегодня не попробую, но завтра-послезавтра время будет, и если к тому времени никто не сделает, попробую запилить.
    а пока у меня есть некоторые соображения по поводу добавления древовидных коментариев: так как они могут быть в разных "ветках", предлагаю сделать еще такую штуку, как была в Google Wave, навигацию по новым коментам. та по пробелу был переход к следующему непрочитанному сообщению. думаю и тут такое будет очень кстати.
  • @partizan, jsfiddle.net
    собственно, вот.
    так как ws://juick.com лежит, там берутся готовые данные и отсылаются на echo.websocket.org, который возвращает их нам.
  • @partizan, Как насчет бонус-задач? :)