|
JavaScript / HTML Создание динамической разметки страниц |
26.06.2012, 15:24
|
#1
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
nodejs
nodejs - это платформа разработанная на основе V8 (Chrome JavaScript Runtime).
Платформа разрабатывалась с главной целью улучшить скорость разработки, и возможности масштабирования сетевого решения.
Он прост, лёгок, и отличный выбор для мощных real-time сетевых приложений.
Язык: JavaScript.
Язык для разработки Модулей: C / C++ / JavaScript.
Это молодой инструмент, но на столь мощный и своеобразный, что уже имеет огромное сообщество, конференции и тренинги, также крупные компании используют nodejs для своих проектов, где классические решения проигрывают многократно.
Основное отличие nodejs как серверного решения заключается в парадигме программирования - event-driven.
По сути это JavaScript с кучей callback'ов. Т.к. большинство задачь выполняются асинхронно, то это минимизирует задержку главного потока для ожидания например пока жётский диск читает файл или пока приложение записывает в базу данных документ. Таким образом нету никаких проблем с синхронизацией потоков или других проблем "простоев".
Для разработки сетевых игр нацеленных на web аудиторию, nodejs как серверное решение - отличный выбор, т.к. позволяет разрабатывать клиент и сервер на одном языке, что даёт возможность использования кода с обеих сторон.
Полезные ссылки:
Список компаний и проектов.
npm - менеджер модулей. Помогает легко и просто из командной строки устанавливать новые модули.
socket.io - модуль для работы с WebSockets протоколом с fallback'ом в LongPoll. Для создания двусторонней real-time коммуникации сервера с клиентом.
express - веб фреймворк позволяющий удобно и просто управлять route'ом и разрабатывать классическое веб приложение.
Огромный список модулей (на любой вкус)
Интересные примеры:
BrowserQuest - MMORPG, экспериментальный проект при поддержке mozilla. Сервер написан полностью на nodejs.
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
26.06.2012, 15:27
|
#2
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: nodejs
Зарезервированно для туториала установки.
|
(Offline)
|
|
27.06.2012, 16:16
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: nodejs
Интересная штука, будет интересно почитать пару туторов)
|
(Offline)
|
|
27.06.2012, 18:30
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: nodejs
Угу, работаю над мелким проектиком, оберну в маленький тутор.
Плюс, на том же socket.io есть сразу же примеры, очень просто запускаются.
Но да, нужно сперва туториал по запуску.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.10.2012, 16:17
|
#5
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: nodejs
Готовая сборка NodeJS.exe
Попробуйте - запустится ли у вас "некая версия" NodeJS, без установки дополнительный файлов (сред запуска).
После двух (1 и 2) неудачных попыток запуска других версий NodeJS по инструкции для которых требовалось установить сторонние среды разработки - нашёл эту сборку.
Так как на нетбуке я уже устанавливал доп.программы, то у меня эта версия NodeJS.exe идёт.
Но так же запускается, идёт и на "чистом стареньком ЭВМ", на котором я просто скопировал и запустил этот NodeJS.exe
Возможно он запускается без дополнительных установок, проверьте.
Так же я подготовил сборку для удобного использования, обновления модулей и несколько доступных примеров.
MoKa как успехи?
|
(Offline)
|
|
29.10.2012, 02:43
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: nodejs
Успехи отлично, используем NodeJS + Express + MongoDB для одного коммерческого проекта, для реализации API и хранилища.
CMS пишется на HTML + JS + CSS, и общение с API происходит через AJAX.
Для страниц с контентом, пишем на PHP и то что нужно выводить статично для SEO делаем curl запросы к API со стороны сервера (PHP).
Скорость разработки в такой связке очень высокая, и дружелюбно к модификациям очень.
Насчёт установки, я вот на новый комп ставил node, дык скачал 0.8.9 интсллятор, и просто поставил. Добавил PATH к бинарникам node, и готово. Ничего стороннего не нужно было ставить.
Насчёт компиляции node, этим не заморачивался никогда, т.к. node рассчитан для использования только на стороне сервера, следственно делать какие-то exe'шки или бинарники не вижу смысла, если запуск самого проекта прост: node "имя файла".
|
(Offline)
|
|
12.11.2012, 13:50
|
#7
|
Оператор ЭВМ
Регистрация: 11.11.2011
Адрес: Ростов-на-Дону
Сообщений: 41
Написано 9 полезных сообщений (для 17 пользователей)
|
Ответ: nodejs
За ночь прочитал доки по node.js , через сутки начал делать чат на WS c помощью IO.scoket . =)
http://itlearn.ru/node/chat.php вот пример, нажимем connect, вводим логин ( рус/енгл), пишем в чат =)
так же можно приватно общаться.
т.к. привязал всё к ID сокса клиентов то приват не будет посылать , если человек перезайдет, заново придется в списке выбирать и писать =)
в дальнейшем планирую сделать полноценную регистрацию. хорошо есть поддержка mysql в node =) и привязку привата и всех сообщений делать по логину.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.11.2012, 23:02
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: nodejs
Сообщение от treycerok
За ночь прочитал доки по node.js , через сутки начал делать чат на WS c помощью IO.scoket . =)
|
Угу, там очень шустро можно начать.
Сообщение от treycerok
http://itlearn.ru/node/chat.php вот пример, нажимем connect, вводим логин ( рус/енгл), пишем в чат =)
так же можно приватно общаться.
т.к. привязал всё к ID сокса клиентов то приват не будет посылать , если человек перезайдет, заново придется в списке выбирать и писать =)
|
Я глянул как ты реализовал связку, и смотрю что ты просто запрашиваешь скрипт от node по другому порту (на котором node, слушает сокет). Тут могут быть проблемы с броузерами, т.к. они могут блокировать WS/AJAX запросы на другой домен, т.к. смена порта - уже считается как другой домен. Это гемор с Cross Domain Policy.
Поэтому есть хорошее решение - замутить прокси на htaccess. В гугле полно инфы. Снижения производительности практически не будет.
Сообщение от treycerok
в дальнейшем планирую сделать полноценную регистрацию. хорошо есть поддержка mysql в node =) и привязку привата и всех сообщений делать по логину.
|
Прикольно. Я тоже чатик делал. Весьма простая штука, но доставляет.
Только не забывай front-end оптимизировать, т.к. с одних смайликов у тебя можно в 5 раз снизить количество запросов на сервер, объединив не анимированные смайлы в одну тайловую текстуру, а затем использовать background-position.
Теги и скрипты escape'ишь - молодцом.
Насчёт mysql я бы не использовал. Ну для node, mongodb во много удобнее и шустрее, и практичнее.
А вот авторизацию, сделал бы локально доступный скрипт в php, в который node смог бы обращаться предоставляя уже хешированный пароль и логин, а php скрипт выдовал бы результат. Этакий прокси авторизация. Т.к. на php уже есть авторизация, и лучше не плодить код, а остаться зависимым от него, если конечно в будущем не планируешь изменять что-то в плане языков и сильных перемен в backend'е.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.10.2014, 03:15
|
#9
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: nodejs
у меня появилась идея и на этом
возник вопрос к moka
что если по типу этого примера
привязать сеть в Unity через nodejs?
т.е. nodejs будет организовывать многопоточную сеть, а Unity - обрабатывать графику и передавать данные.
можно даже не counter-strike сервер писать, а хотяб минимум bomberman
как идея?
хотя вроде будет страдать синхронизация javascript-а... пока данные туда-сюда unity-nodejs передадутся..
но всё же, идея изначально жива или нет?
|
(Offline)
|
|
03.10.2014, 05:46
|
#10
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: nodejs
Вполне жива. По факту очень многие начинают первые зачатки и прототипы серверов на node.js т.к. это легче и быстрее.
По производительности, на первое время можешь не париться.
PAX, экспериментировал с node.js + unity связкой не мало, я не знаю на сколько далеко все зашло, поинтересуйся у него.
|
(Offline)
|
|
03.10.2014, 07:20
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: nodejs
C многопоточностью я не игрался, там надо запускать не просто node js, а node fibers или что-то такое. А так проект я давно не развиваю, времени нет. Сеть была TCP, до UDP не добрался нормально.
|
(Offline)
|
|
03.10.2014, 14:19
|
#12
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: nodejs
Мультипоточность как таковой не нужна.
Все что нужно это worker'ы, и логика твоего сервера чтобы могла горизонтально скейлиться.
Следственно асинхронная микро-сервис архитектура - решение в горизонтальном масштабировании здесь.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.10.2014, 16:51
|
#13
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: nodejs
что-то я ничего не могу понять.... Как пользоваться этой штукой?
Скачал, установил, в консоли пишу:
node
потом пытаюсь запустить скрипт (лежит в корне диска С)
в ответ получаю:
...
и тишина
__________________
Абсолютли!
|
(Offline)
|
|
11.10.2014, 18:12
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: nodejs
наверное так:
Просто запуская node он открывает консоль интерпретатора.
|
(Offline)
|
|
11.10.2014, 18:30
|
#15
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: nodejs
тоже самое
--------------
плиззз
__________________
Абсолютли!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:02.
|