forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JavaScript / HTML (http://forum.boolean.name/forumdisplay.php?f=136)
-   -   nodejs (http://forum.boolean.name/showthread.php?t=16970)

moka 26.06.2012 15:24

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.

moka 26.06.2012 15:27

Ответ: nodejs
 
Зарезервированно для туториала установки.

pax 27.06.2012 16:16

Ответ: nodejs
 
Интересная штука, будет интересно почитать пару туторов)

moka 27.06.2012 18:30

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

Но да, нужно сперва туториал по запуску.

LLI.T.A.L.K.E.R. 28.10.2012 16:17

Ответ: nodejs
 
Готовая сборка NodeJS.exe

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

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


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

MoKa как успехи?

moka 29.10.2012 02:43

Ответ: 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 "имя файла".

treycerok 12.11.2012 13:50

Ответ: nodejs
 
За ночь прочитал доки по node.js , через сутки начал делать чат на WS c помощью IO.scoket . =)
http://itlearn.ru/node/chat.php вот пример, нажимем connect, вводим логин ( рус/енгл), пишем в чат =)
так же можно приватно общаться.
т.к. привязал всё к ID сокса клиентов то приват не будет посылать , если человек перезайдет, заново придется в списке выбирать и писать =)
в дальнейшем планирую сделать полноценную регистрацию. хорошо есть поддержка mysql в node =) и привязку привата и всех сообщений делать по логину.

moka 12.11.2012 23:02

Ответ: nodejs
 
Цитата:

Сообщение от treycerok (Сообщение 243353)
За ночь прочитал доки по node.js , через сутки начал делать чат на WS c помощью IO.scoket . =)

Угу, там очень шустро можно начать.

Цитата:

Сообщение от treycerok (Сообщение 243353)
http://itlearn.ru/node/chat.php вот пример, нажимем connect, вводим логин ( рус/енгл), пишем в чат =)
так же можно приватно общаться.
т.к. привязал всё к ID сокса клиентов то приват не будет посылать , если человек перезайдет, заново придется в списке выбирать и писать =)

Я глянул как ты реализовал связку, и смотрю что ты просто запрашиваешь скрипт от node по другому порту (на котором node, слушает сокет). Тут могут быть проблемы с броузерами, т.к. они могут блокировать WS/AJAX запросы на другой домен, т.к. смена порта - уже считается как другой домен. Это гемор с Cross Domain Policy.
Поэтому есть хорошее решение - замутить прокси на htaccess. В гугле полно инфы. Снижения производительности практически не будет.

Цитата:

Сообщение от treycerok (Сообщение 243353)
в дальнейшем планирую сделать полноценную регистрацию. хорошо есть поддержка mysql в node =) и привязку привата и всех сообщений делать по логину.

Прикольно. Я тоже чатик делал. Весьма простая штука, но доставляет.

Только не забывай front-end оптимизировать, т.к. с одних смайликов у тебя можно в 5 раз снизить количество запросов на сервер, объединив не анимированные смайлы в одну тайловую текстуру, а затем использовать background-position.

Теги и скрипты escape'ишь - молодцом.
Насчёт mysql я бы не использовал. Ну для node, mongodb во много удобнее и шустрее, и практичнее.
А вот авторизацию, сделал бы локально доступный скрипт в php, в который node смог бы обращаться предоставляя уже хешированный пароль и логин, а php скрипт выдовал бы результат. Этакий прокси авторизация. Т.к. на php уже есть авторизация, и лучше не плодить код, а остаться зависимым от него, если конечно в будущем не планируешь изменять что-то в плане языков и сильных перемен в backend'е.

LLI.T.A.L.K.E.R. 03.10.2014 03:15

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

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

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

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

хотя вроде будет страдать синхронизация javascript-а... пока данные туда-сюда unity-nodejs передадутся..
но всё же, идея изначально жива или нет?

moka 03.10.2014 05:46

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

PAX, экспериментировал с node.js + unity связкой не мало, я не знаю на сколько далеко все зашло, поинтересуйся у него.

pax 03.10.2014 07:20

Ответ: nodejs
 
C многопоточностью я не игрался, там надо запускать не просто node js, а node fibers или что-то такое. А так проект я давно не развиваю, времени нет. Сеть была TCP, до UDP не добрался нормально.

moka 03.10.2014 14:19

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

Следственно асинхронная микро-сервис архитектура - решение в горизонтальном масштабировании здесь.

ant0N 11.10.2014 16:51

Ответ: nodejs
 
что-то я ничего не могу понять.... Как пользоваться этой штукой?
Скачал, установил, в консоли пишу:
node
потом пытаюсь запустить скрипт (лежит в корне диска С)
в ответ получаю:
...
и тишина

pax 11.10.2014 18:12

Ответ: nodejs
 
наверное так:
Код:

node C:\1.js
Просто запуская node он открывает консоль интерпретатора.

ant0N 11.10.2014 18:30

Ответ: nodejs
 
тоже самое

--------------
плиззз :(


Часовой пояс GMT +4, время: 22:54.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot