X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как сделать свой сервер для игр бесплатно
k0ttee
k0ttee
Topic Starter сообщение 18.1.2016, 10:24; Ответить: k0ttee
Сообщение #1


Сервер - удовольствие платное, мощный сервер - удовольствие дорогое.
Даже поставив его дома (на кухне из старого компа), придется доплачивать провайдеру за открытие нужных портов.

А если 13-летняя личность, сидя за мамкиным ноутбуком, думает как сделать свой сервер для игр бесплатно? Что если пукан бомбит, а денег нет?
Чем бы дитё не тешилось, лишь бы бесплатно! :rjunimagu: Поэтому будем тушить пылающие пердаки с помощью Ngrok.

Ngrok - средство проброса портов через NAT (или другие страшные слова), с которым справится даже бомбящий 13-летний пукан.
Стена с дыркой это завуалированное воспламенение пукана, что за открытие портов можно не платить бабло провайдеру.
Прикрепленный файл  webhooks.png ( 134,79 килобайт ) Кол-во скачиваний: 7815


Изделие существует для многих платформ:
1.) OS X (кошерно)
2.) Windows (не кошерно)
3.) Linux (x86 x64 бубунту... все сложно)
4.) Linux ARM (а значит можно засадить чуть ли не в прошивку роутера или старого смартфона)
5.) FreeBSD (ну как же мы без фряхи)

Пользоваться довольно просто... если гонять терминальные команды для вас просто.
А если сложно, тогда вот инструкция.

1.) Скачиваем ZIP-архив и распаковываем.
Прикрепленный файл  1.png ( 28,9 килобайт ) Кол-во скачиваний: 7814

2.) Теперь надо открыть терминал и написать путь к файлу (если лень писать - перетянуть файл в окно терминала).
Еще надо дописать команду запуска (я даю пример для веб-сервера) дописать после пути к файлу надо:
http 80

Прикрепленный файл  2.png ( 5,42 килобайт ) Кол-во скачиваний: 7814

3.) По нажатию Enter команда выполняется и ваша ПеКарня превращается в сервер видимый из интернета.
Выглядит это как-то так... Лабуда не читаемая на поддомене ngrok.io это адрес сайта который будет открываться.
http://ae65a92a.ngrok.io

Прикрепленный файл  3.png ( 18,04 килобайт ) Кол-во скачиваний: 7816


Если запустить с ключом -subdomain
-subdomain k0ttee http 80

Получим свой поддомен, более удобно-читаемый: k0ttee.ngrok.com
Только для этой функции придется зарегистрироваться и получить уникальный токен.

Куда проводится? На локалку! На 127.0.0.1 в вашем компе.

Через 3G телефон смог зайти на сайт (сайт сидит в ноуте подключенном к интернету через Wi-Fi). Думаю после такой проверки сомнений остаться не должно.
Прикрепленный файл  test.png ( 212,32 килобайт ) Кол-во скачиваний: 7816


Ежели дописать еще немного адресации, можно направить на другой комп в домашней локалке.
Помощь по командам выводится если запустить с ключом -help
-help


Ваш пукан уже горит запилить сервер и выпендриваться перед остальными посанами на районе, но остался вопрос: "А в чем отстой?"
Все просто - дополнительная прослойка увеличивает пинг и соединение может не вытягивать требовательные игрушки. Для веб-сервера под говносайты пинг достойный.
Прикрепленный файл  4.png ( 18,58 килобайт ) Кол-во скачиваний: 7814


А шо главное - бесплатно!!!111

Теперь, если сервер игры уже готов, даже 13-летняя личность сможет заявить: "Го ко мне, моя попа в огне, я создал!" :rjunimagu:


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dotatin
Dotatin
сообщение 18.1.2016, 10:35; Ответить: Dotatin
Сообщение #2


А что мешает напрямую создать сервер? Та же самая контра или дота прекрасно создаются прямо из игры.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 18.1.2016, 10:52; Ответить: k0ttee
Сообщение #3


прямо из игры

Таки не везде такая реализация.
Таки можно создать кухонный майнкрафт-сервер и барыжить им.
Таки можно сделать вообще любой сервер, не только игровой но и VPN и проксить друг-друга для кликов по рекламе.

Короче возможностей целый вагон, но 99.9% пуканов воспламеняются именно от игр... вот в эту сторону и пришлось сделать уклон. Фан в инструменте и угаре от написания шапки.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SilverSurfer
SilverSurfer
сообщение 12.1.2017, 23:22; Ответить: SilverSurfer
Сообщение #4


Добрый день
У меня вовсю уже бомбит - разрабатываю (программирую) клиент-серверную онлайн-игру
Пока, сервер её будет на моём домашнем компе
Развернул ngrok на нём
Теперь нужен ваш совет
Какой именно веб-сервер поставить на свой домашний комп? - из той же серии, простой, лёгкий, понятный даже дебилу.
И чтобы он легко дружил с прогой-сервером игры.
Игра ККИ, пошаговая, передаваемые объёмы данных просто смешно малы
Заранее спасибо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 13.1.2017, 12:56; Ответить: k0ttee
Сообщение #5


Какой именно веб-сервер поставить на свой домашний комп? - из той же серии, простой, лёгкий, понятный даже дебилу.
И чтобы он легко дружил с прогой-сервером игры.

Я бы поставил NGINX и соединил с серверной частью игры сокетом.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SilverSurfer
SilverSurfer
сообщение 13.1.2017, 17:18; Ответить: SilverSurfer
Сообщение #6


Я вот думаю - а может, и не нужен никакой веб-сервер? Что если в самом сервере игры, прописать работу с сокетами?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 13.1.2017, 17:23; Ответить: k0ttee
Сообщение #7


Ngrok делает туннель, чтобы домашний комп смог быть сервером (несмотря на закрытые порты у провайдера).

Если игра представляет собой сайт, на который заходят с браузеров - сойдет любой denwer на localhost.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SilverSurfer
SilverSurfer
сообщение 13.1.2017, 23:55; Ответить: SilverSurfer
Сообщение #8


Нет, игра представляет собой браузерный клиент (на JavaScript HTML5 Canvas), который обменивается данными с сервером игры (который всё обсчитывает)
Игрок открывает клиент (не с моего домашнего компа), а дальше этот клиент должен обмениваться данными с сервером (программой) который стоит на моём домашнем компе

Добавлено спустя 6 часов 28 минут 54 секунды:
Кароче (умудрился уже опытом) отвечаю сам же на свой же вопрос:
Для тех у кого бомбит писать свою собственную онлайн-игру, а (нихрена) навыков в веб-программировании нету, а 3 дня кряду самостоятельно рыть инет (как сейчас делал я) не хоца, то:
1. Качается эта прога: Node ("recommended" версия там). Инсталится на свой домашний комп. Это сразу (2-в-1 одном флаконе) - и прога-сервер-игры (кодинг программного кода сервера игры, проводится на языке JavaScript - после чего, сохраняется в файл sr.js - после чего, подсовывается в командной строке на вход этой проге при её запуске) - и она же также и веб-сервер сама (на этот веб-сервер - на неё - потом можно будет заходить из инета браузером)
2. Курс молодого бойца по этой проге:
3. На компе создаётся папочка, в которой будет писаться игра. (и сервер-игры и клиент-игры)
4. В эту папочку, кладётся тот файл sr.js (в котором будет писаться код сервера игры - писаться например открыв этот файл, блокнотом)
5. Внутри этой папочки, создаётся подпапочка "public" - в ней будет лежать клиент игры: 2 файла - index.html (веб-страница которая даётся в браузер подключившемуся клиенту), и cl.js (программный код клиента игры - тобиш, программный код самой этой вебстраницы, который исполняет браузер клиента на стороне компа клиента - код этот программный, он писаемый тоже на языке JavaScript, тоже открывая этот файл например ноутпадом)
6. Если 2-5 это показалось слишком сложно на восприятие - качается например этот готовый работающий пример
7. Кодим клиент-серверный обмен (игра в пинг-понг сообщениями туда-сюда), с помощью веб-сокетов (вебсокетов, websockets). Именно вебсокетов, а не чего-то ещё.
8. Как кодить 7 - видно в том готовом работающем примере из 6.
9. Запуск в небо:
10. Открывается командная консоль (cmd).
11. В ней идётся (с помощью команд cd) внутрь той папочки где лежит файл sr.js ( файл программы сервера игры)
12. После того как пришли в ту папочку, набираем команду: node sr.js. И жмём Enter.
13. Ура, сервер игры (он же, и веб-сервер по совместительству) - запущен, работает.
14. Открываем на своём компе браузер, и в адресную строку вводим там: localhost:3000
(вместо "3000" - номер порта который прописан в файле sr.js - проге-сервере-игры)
15. Если всё сделано верно, наслаждаемся как в браузере появилось сообщение от сервера игры.
16. А если в sr.js уже прописана и выдача клиенту клиентской веб-страницы (которая лежит в той папке "public") - то наслаждаемся тем как на эту веб-страницу зашлось в браузере.
17. Гордо показаться нашему новоиспечённому серваку игры (вебсерверу) на просторах инета, поможет прога ngrok.
18. Друк открывает у себя дома браузер, заходит им на адрес вашего компа (который написано в ngrok) указав после этого адреса через двоеточие (":") ту цифирь "3000" (или какой порт прописан в sr.js, и есно цифирь в адресной строке браузера дописывается без кавычек) - и - о чудо! - он зашёл браузером этим своим на вебстраницу клиента вашей игры.
19. Всё программирование - и клиента игры, и сервера игры - производится исключительно на языке JavaScript (не перегружая тыкву сто500 разными языками программирования)
20. Онлайново проверить свой JavaScript-код на синтаксическую корректность: здесь (копипастить туда из ноутпада - если надпись там внизу не стала зелёненькой, а красненькая, значит ищи ошибку, по подсказкам там справа - скобочка, точка с запятой, и т.п. упущения - без исправления всех упущений, данный код просто не заработает)
(можно также кодить в среде разработки вроде Eclipse Jee Neon, но не рекомендуется до достижения "высот" перегружать ею свою тыкву)

21. P.S. (для адванседов, уже): если при кодинге потребуется установка доп.библиотек которые есть у node, делается это "кошерным" заходом в папку игры (консолью cmd, пп.10-11), и выполнением там следующей команды: npm install <имя_этой_библиотки> --save
(без угловых скобок, и с обязательной припиской --save, ну и не забыть написав команду нажать Enter))

P.P.S. Сам рыл всё это, дня 3 :beach:
P.P.P.S. Для более серьёзных разработок, конечно же мировая индустрия юзает все эти апачи, денверы, пхп, си++, и т.п..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SilverSurfer
SilverSurfer
сообщение 22.1.2017, 1:36; Ответить: SilverSurfer
Сообщение #9


Еще более умудрившись опытом, выкладываю полностью рабочий пример:
Писан на чистых вебсокетах (БЕЗ использования технологии socket.io)

1. Качается эта прога: Node ("recommended" версия там). Инсталится на свой домашний комп. Это сразу (2-в-1 одном флаконе) - и прога-сервер-игры (кодинг программного кода сервера игры, проводится на языке JavaScript - после чего, сохраняется в файл sr.js - после чего, подсовывается в командной строке на вход этой проге при её запуске) - и она же также и веб-сервер сама (на этот веб-сервер - на неё - потом можно будет заходить из инета браузером)
2. Курс молодого бойца по этой проге:
3. На компе создаётся папочка, в которой будет писаться игра (и сервер-игры и клиент-игры). У меня, эта папочка - "C:\...\...\...\proj"
4. В эту папочку, кладётся тот файл sr.js (в котором будет писаться код сервера игры - писаться например открыв этот файл, блокнотом)
5. Внутри этой папочки, создаётся подпапочка "public" - в ней будет лежать клиент игры: 2 файла - index.html (веб-страница которая даётся в браузер подключившемуся клиенту), и cl.js (программный код клиента игры - тобиш, программный код самой этой вебстраницы, который исполняет браузер клиента на стороне компа клиента - код этот программный, он писаемый тоже на языке JavaScript, тоже открывая этот файл например ноутпадом)
7. Кодим клиент-серверный обмен (игра в пинг-понг сообщениями туда-сюда), с помощью чистых веб-сокетов (НЕ socket.io, НЕ TCP-сокеты, и т.п.):

proj\sr.js (программа сервер игры):

Обычный веб-сервер (статика) на порту 8080 (выдаёт веб-страницу клиентскому браузеру)

var http = require('http');
var static = require('node-static');

// Create a node-static server instance to serve the './public' folder
// Создаём веб-сервер (который берёт данные клиентской веб-страницы из подпапки "public" и выдаёт эту веб-страницу клиентскому браузеру)

var file = new static.Server('./public', { cache: 0 }); // в настройке "cache", отключили кэширование веб-страниц выдаваемых веб-сервером клиентскому браузеру

http.createServer(function (request, response)
{

request.addListener('end', function ()
{
  file.serve(request, response); // Serve files! - обслуживаем запросы клиентского браузера ("request") давая на них ответ ("response")
}).resume(); // добавили листенер клиентских запросов - функцию

}).listen(8080); // веб-сервер "слушает" (листенит) на порту 8080


Сервер чистых веб-сокетов на порту 8081 (чистые вебсокеты - это штатные вебсокеты, без использования библиотек socket.io)

var WebSocketServer = new require('ws');
var webSocketServer = new WebSocketServer.Server({port: 8081}); // вебсокет-сервер "слушает" (листенит) на порту 8081

var clients = {}; // массив - подключенные к вебсокет-серверу клиенты

webSocketServer.on('connection', function(ws) // задаём функцию обрабатывающую событие подключения вебсокет-клиента
{
  var id = Math.random(); // рандомом сгенерировали "idшник нового клиента"
  clients[id] = ws; // "положили" данные вебсокет-подключения нового клиента, в массив клиентов по индексу id
  console.log("У нас новое вебсокет-соединение: " + ws + "; клиенту назначен id: " + id); // отписались в серверной консоли

  clients[id].send("Вебсокет-сервер сообщает вам ваш id клиента: " + id); // отсылаем нашему новому клиенту, сообщение

  // обработчик события поступления сообщения от клиента - задаём функцию, обрабатывающую это событие
  ws.on('message', function(message)
  {
   for (var key in clients) // перебираем наш массив клиентов
   {
    if (clients[key] == ws) // если это - наш текущий клиент
    {
     console.log('От клиента (' + key + ') получено сообщение: ' + message); // отписались в серверной консоли
     clients[key].send('Вебсокет-сервер отвечает на ваше сообщение, клиент (' + key + '): от вас получено сообщение следующего содержания: ' + message); // высылаем сообщение-ответ этому клиенту
    }
   }
  });

  // обработчик события когда клиент отключился - задаём функцию, обрабатывающую это событие
  ws.on('close', function()
  {
   console.log('Закрыто соединение клиента (' + id + ')'); // отписались в серверной консоли
   delete clients[id]; // удаляем отключенного клиента, из массива клиентов
  });

}); // конец функции обрабатывающей событие подключения вебсокет-клиента


Дальнейший серверный код

console.log("Сервер запущен на портах 8080 (static через node), 8081 (pure web-sockets)");


proj\public\index.html (клиентская веб-страница, которую статик веб-сервер выдаёт клиентскому браузеру):

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
<script src="cl.js"></script>
<canvas id="cl">Your browser must support HTML5 to run this game</canvas>
<script>redrawCanv();</script>
<title>НАША ИГРА</title>
</body>
</html>


здесь:

<canvas id="cl">Your browser must support HTML5 to run this game</canvas>
- создаём канвас (а если браузер его не поддерживает, в браузер пишется наше сообщение об этом)

<script src="cl.js"></script>
- программа клиент игры, в этой клиентской веб-странице, рисующая на канвасе

<script>redrawCanv();</script>
- вызов функции программы клиент игры

proj\public\cl.js (программа клиент игры, в клиентской веб-странице, рисующая на канвасе):

Веб-сокеты (чистые, без использования библиотек socket.io)

if (!window.WebSocket) // если наш клиентский браузер не поддерживает чистые вебсокеты
{
document.body.innerHTML = 'WebSocket в этом браузере не поддерживается.';
}

// создать вебсокет-подключение
var socket = new WebSocket("[color=#FF0000]ws://0c4807fc.ngrok.io[/color]");

// обработчик входящих сообщений (от вебсокет-сервера)
socket.onmessage = function(event)
{
var incomingMessage = event.data;
alert(incomingMessage);
};


Листенеры веб-страницы

window.addEventListener('resize', redrawCanv, false);
window.addEventListener('orientationchange', redrawCanv, false);


Основные функции

//перерисовать канвас
function redrawCanv()
{
cnv = document.querySelector('canvas');
cnv.setAttribute('width', okrc(window.innerWidth*0.98));
cnv.setAttribute('height', okrc(window.innerHeight*0.98));

ctx = cnv.getContext('2d');
fontSize = okrc(cnv.width/100);
ctx.font = '' + fontSize + 'px calibri';
fontHeight = okrc(fontSize*0.8);

// ... дальше, здесь код рисования клиентской картинки игры на канвасе

mo = {x:0,y:0}; // координаты курсора мыши
cnv.addEventListener("mousemove", onMouseMove, false); // создаём листенер перемещений мыши
cnv.addEventListener("click", onClick, false); // создаём листенер кликов (лкм или скм) мыши
}


Вспомогательные функции

//округление в меньшую сторону до целого
function okrc(n)
{
mr = Math.round(n);
if (mr < n) return mr;
return mr-1
}

// листенер перемещений мыши
function onMouseMove(e)
{
mo.x = e.clientX - cnv.offsetLeft;
mo.y = e.clientY - cnv.offsetTop;

if (mo.x >= gr.plr.hand.x && mo.x <= gr.plr.hand.xe && mo.y >= gr.plr.hand.y && mo.y <= gr.plr.hand.ye)
{
var cur = plr.hand.cur;
if (!(mo.x >= plr.hand.cards[cur].x && mo.x <= plr.hand.cards[cur].xe && mo.y >= plr.hand.cards[cur].y && mo.y <= plr.hand.cards[cur].ye))
{
  var ikol = plr.hand.cards.length - 1;
  for (var i = 0; i <= ikol; i++)
  {
   if (mo.x >= plr.hand.cards[i].x && mo.x <= plr.hand.cards[i].xe && mo.y >= plr.hand.cards[i].y && mo.y <= plr.hand.cards[i].ye)
   {
    plr.hand.cur = i;
    drawCard(plr.hand.cards[i]);
    break;
   }
  }
}
}
};

// листенер кликов (лкм или скм) мыши
function onClick(e)
{
outgoingMessage = "клик мышью: [ x: " + mo.x + " | y: " + mo.y + "]";
socket.send(outgoingMessage);

}


8. В коде sr.js, мы использовали работу с http. Поэтому, установим для ноды эту библиотеку, которую мы используем в коде:
9. Открывается командная консоль (cmd).
10. В ней идётся (с помощью команд cd) внутрь папочки proj
11. После того как пришли в ту папочку, набираем команду:
npm install http --save
(жмём Enter)
- в папке proj, должна появиться подпапка "node_modules"

12. Запуск в небо:
13. Программу ngrok, положим в ту же папочку proj (в её корень) - гордо показаться нашему новоиспечённому серваку игры (и вебсерверу-статикв нём, и вебсокет-серверу в нём) на просторах инета, поможет эта прога.

14. Открывается командная консоль (cmd).
15. В ней идётся (с помощью команд cd) внутрь папочки proj
16. После того как пришли в ту папочку, набираем команду:
ngrok http 8080
(и жмём Enter)
- ура, порт 8080 (статик веб-сервер) проброшен в интернет!

17. Открывается ЕЩЁ ОДНА командная консоль (cmd).
18. В ней идётся (с помощью команд cd) внутрь папочки proj
19. После того как пришли в ту папочку, набираем команду:
ngrok http 8081
(и жмём Enter)
- ура, порт 8081 (вебсокет-сервер) проброшен в интернет!

20. В окне cmd из п.19 (ИМЕННО ИЗ НЕГО), смотрим на вот такую строчку: (опять пример, этот текст при каждом запуске ngrok всегда разный!)
Forwarding http://0c4807fc.ngrok.io -> localhost:8081
- нас из этой строчки, интересует ТОЛЬКО вот эта её подстрочка: 0c4807fc.ngrok.io
- и копируем ЭТУ ПОДСТРОЧКУ в буфер обмена (как копировать любой текст из окна cmd, читай в инете)
21. Открываем блокнотом файл cl.js (наша программа клиент игры). В нём идём на строчку, выделенную у меня в примере красным.
Пастим из буфера обмена, заменяя ПОДСТРОЧКУ (которая после //, и до закрывающей кавычки). Проверяем всё ещё раз (правильно ли вставилось), сохраняем файл.
В КРАСНОЙ СТРОЧКЕ, В ЕЁ НАЧАЛЕ ВСЕГДА ДОЛЖНО СТОЯТЬ WSНЕ HTTP!!!!!!!!!!!!!!)

22. Открывается ЕЩЁ ОДНА (уже, третья) командная консоль (cmd).
23. В ней идётся (с помощью команд cd) внутрь папочки proj
24. После того как пришли в ту папочку, набираем команду:
node sr.js
(и жмём Enter)
- ура, наш сервер игры запущен (он же, и веб-сервер статик по совместительству - он же, и сервер веб-сокетов по совместительству)
(а нгроки которые выше, пробросили его порты - порт веб-сервер статик, 8080 - а также порт веб-сокетов, 8081 - в интернет)

25. В консоли из п.16, смотрим следующую строчку: (опять пример, этот текст при каждом запуске ngrok всегда разный!)
Forwarding http://864039db.ngrok.io -> localhost:8080
- нас из этой строчки, интересует ТОЛЬКО вот эта её подстрочка: http://864039db.ngrok.io
- и копируем ЭТУ ПОДСТРОЧКУ в буфер обмена (как копировать любой текст из окна cmd, читай в инете)
26. Открываем на своём компе браузер, и в адресную строку пастим этот веб-адрес, жмём Enter.
27. Если всё сделано верно, наслаждаемся как в браузере открылась клиентская веб-страница игры - зашлось браузером на неё.
(если вы увидели на странице надпись вроде "upgrade required" - значит вы браузером, зашли НЕ на адрес ВЕБ-страницы, А на адрес вебсокетов - так делать, НЕ надо))
28. Кликаем мышью ВНУТРИ канваса (сделаем несколько кликов)
29. Наслаждаемся как в cmd из п.21 написало "клиент подключен", а потом "сообщение от клиента" - а в браузере, выскочило оповещение с сообщением присланным сервером игры!
30. Друк открывает у себя дома браузер, заходит им на веб-адрес (который в п.23) - и - о чудо! - он зашёл браузером этим своим на вебстраницу клиента вашей игры.
31. Кликая там по канвасу, второе чудо - обмен сообщениями браузера друка с сервером игры
32. Всё программирование - и клиента игры, и сервера игры - производится исключительно на языке JavaScript (не перегружая тыкву сто500 разными языками программирования)
33. Онлайново проверить свой JavaScript-код на синтаксическую корректность: здесь (копипастить туда из ноутпада - если надпись там внизу не стала зелёненькой, а красненькая, значит ищи ошибку, по подсказкам там справа - скобочка, точка с запятой, и т.п. упущения - без исправления всех упущений, данный код просто не заработает)
(можно также кодить в среде разработки вроде Eclipse Jee Neon, но не рекомендуется до достижения "высот" перегружать ею свою тыкву)
34. Онлайново сделать красивый внешний вид JavaScript-кода, грамотно расставить переносы строк в нём: здесь

35. P.S. (для адванседов, уже): если при кодинге потребуется установка доп.библиотек которые есть у node, делается это "кошерным" заходом в папку игры (консолью cmd, пп.10-11), и выполнением там следующей команды: npm install <имя_этой_библиотки> --save
(без угловых скобок, и с обязательной припиской --save, ну и не забыть написав команду нажать Enter))
36. P.P.S. Ограничиться вместо двух портов (8080 и 8081 в примере) всего лишь одним портом (повесив на него И веб-сервер статик, И вебсокет-сервер) - НЕЛЬЗЯ!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 24.1.2017, 0:43; Ответить: k0ttee
Сообщение #10


А еще говорят, что нельзя вот так просто взять и начала писать на Node JS. :rjunimagu:


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 399 Вчера, 15:13
автор: LiveExpert
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 357 Вчера, 15:13
автор: LiveExpert
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыAzinomoney.com - гемблинг-партнерка с 65%RS для каждого
Гарантированный заработок на гемблинг-трафике
65 AzinoMoney 29206 27.3.2024, 19:10
автор: AzinoMoney
Горячая тема (нет новых ответов) Делаю полностью уникальный дизайн для сайтов!
46 AlexDIZ 93537 26.3.2024, 20:03
автор: AlexDIZ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1124 26.3.2024, 14:13
автор: knezevolk


 



RSS Текстовая версия Сейчас: 29.3.2024, 18:43
Дизайн