Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 26.06.2012, 11:24   #1
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
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 за это полезное сообщение:
ABTOMAT (26.06.2012), DarkInside (10.04.2013), is.SarCasm (26.06.2012), pax (26.06.2012), Randomize (12.03.2013)
Старый 26.06.2012, 11:27   #2
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: nodejs

Зарезервированно для туториала установки.
(Offline)
 
Ответить с цитированием
Старый 27.06.2012, 12:16   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: nodejs

Интересная штука, будет интересно почитать пару туторов)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.06.2012, 14:30   #4
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: nodejs

Угу, работаю над мелким проектиком, оберну в маленький тутор.
Плюс, на том же socket.io есть сразу же примеры, очень просто запускаются.

Но да, нужно сперва туториал по запуску.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (27.06.2012)
Старый 28.10.2012, 12:17   #5
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 503 пользователей)
Ответ: nodejs

Готовая сборка NodeJS.exe

Попробуйте - запустится ли у вас "некая версия" NodeJS, без установки дополнительный файлов (сред запуска).

После двух (1 и 2) неудачных попыток запуска других версий NodeJS по инструкции для которых требовалось установить сторонние среды разработки - нашёл эту сборку.
Так как на нетбуке я уже устанавливал доп.программы, то у меня эта версия NodeJS.exe идёт.
Но так же запускается, идёт и на "чистом стареньком ЭВМ", на котором я просто скопировал и запустил этот NodeJS.exe


Возможно он запускается без дополнительных установок, проверьте.
Так же я подготовил сборку для удобного использования, обновления модулей и несколько доступных примеров.

MoKa как успехи?
(Offline)
 
Ответить с цитированием
Старый 28.10.2012, 22:43   #6
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: 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, 09:50   #7
treycerok
Оператор ЭВМ
 
Аватар для treycerok
 
Регистрация: 11.11.2011
Адрес: Ростов-на-Дону
Сообщений: 41
Написано 9 полезных сообщений
(для 17 пользователей)
Ответ: nodejs

За ночь прочитал доки по node.js , через сутки начал делать чат на WS c помощью IO.scoket . =)
http://itlearn.ru/node/chat.php вот пример, нажимем connect, вводим логин ( рус/енгл), пишем в чат =)
так же можно приватно общаться.
т.к. привязал всё к ID сокса клиентов то приват не будет посылать , если человек перезайдет, заново придется в списке выбирать и писать =)
в дальнейшем планирую сделать полноценную регистрацию. хорошо есть поддержка mysql в node =) и привязку привата и всех сообщений делать по логину.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (12.11.2012)
Старый 12.11.2012, 19:02   #8
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
treycerok (12.04.2013)
Старый 02.10.2014, 23:15   #9
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 503 пользователей)
Ответ: nodejs

у меня появилась идея и на этом
возник вопрос к moka

что если по типу этого примера
привязать сеть в Unity через nodejs?

т.е. nodejs будет организовывать многопоточную сеть, а Unity - обрабатывать графику и передавать данные.

можно даже не counter-strike сервер писать, а хотяб минимум bomberman
как идея?

хотя вроде будет страдать синхронизация javascript-а... пока данные туда-сюда unity-nodejs передадутся..
но всё же, идея изначально жива или нет?
(Offline)
 
Ответить с цитированием
Старый 03.10.2014, 01:46   #10
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: nodejs

Вполне жива. По факту очень многие начинают первые зачатки и прототипы серверов на node.js т.к. это легче и быстрее.
По производительности, на первое время можешь не париться.

PAX, экспериментировал с node.js + unity связкой не мало, я не знаю на сколько далеко все зашло, поинтересуйся у него.
(Offline)
 
Ответить с цитированием
Старый 03.10.2014, 03:20   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: nodejs

C многопоточностью я не игрался, там надо запускать не просто node js, а node fibers или что-то такое. А так проект я давно не развиваю, времени нет. Сеть была TCP, до UDP не добрался нормально.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 03.10.2014, 10:19   #12
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,453 полезных сообщений
(для 6,859 пользователей)
Ответ: nodejs

Мультипоточность как таковой не нужна.
Все что нужно это worker'ы, и логика твоего сервера чтобы могла горизонтально скейлиться.

Следственно асинхронная микро-сервис архитектура - решение в горизонтальном масштабировании здесь.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (03.10.2014)
Старый 11.10.2014, 12:51   #13
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 719
Написано 260 полезных сообщений
(для 670 пользователей)
Ответ: nodejs

что-то я ничего не могу понять.... Как пользоваться этой штукой?
Скачал, установил, в консоли пишу:
node
потом пытаюсь запустить скрипт (лежит в корне диска С)
в ответ получаю:
...
и тишина
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 14:12   #14
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,496
Написано 2,953 полезных сообщений
(для 5,217 пользователей)
Ответ: nodejs

наверное так:
node C:\1.js
Просто запуская node он открывает консоль интерпретатора.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 14:30   #15
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 719
Написано 260 полезных сообщений
(для 670 пользователей)
Ответ: nodejs

тоже самое

--------------
плиззз
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 11:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com