Cum sa faci serverul tau pentru jocuri gratis

Probleme tehnice "Hardware și software

Cum sa faci serverul tau pentru jocuri gratis

Și dacă o persoană de 13 ani, așezată în spatele unui laptop Mumkin, gândește cum să-și facă serverul pentru jocuri gratuit. Ce se întâmplă dacă țestoasele bombă, dar nu există bani?






Ce ar fi un copil nu teshilos, dacă este doar gratuit! Prin urmare, vom stinge fartul arzător cu Ngrok.

Ngrok este un mijloc de expediere a porturilor prin NAT (sau alte cuvinte înfricoșătoare), pe care chiar și un batjocoritor de 13 ani poate manipula.
Un perete cu o gaură este o aprindere aparentă a unui pukan, că pentru deschiderea porturilor nu se poate plăti un împrumutător furnizorului.

Este ușor de folosit. dacă conduceți comenzi terminale pentru dvs. este ușor.
Și dacă e greu, atunci iată manualul.

1.) Descărcați arhiva ZIP și despachetați-o.


2.) Acum trebuie să deschidem terminalul și să scriem calea către fișier (dacă este prea leneș să scrie - glisați fișierul în fereastra terminalului).
De asemenea, trebuie să adaug comanda de pornire (dau un exemplu pentru un server web) pentru a adăuga după calea către fișier:

Dacă rulați cu comutatorul-subdomeniu

Selectați tot Codul: -subdomeniu k0ttee http 80


Vom primi subdomeniul nostru, mai ușor de citit: k0ttee.ngrok.com
Doar pentru această funcție va trebui să vă înregistrați și să primiți un jeton unic.

Unde se află? Pe zonaku! Pe 127.0.0.1 în computer.

Pukan-ul tău deja arde pe server și se arătă în fața celorlalți din raion, dar întrebarea a rămas: "Ce suge?"
Este simplu - un strat suplimentar mărește ping-ul și conexiunea nu poate trage jucării exigente. Pentru un server web sub govnosayty ping demn.

Și cel mai important, este gratuit. 111

Acum, dacă serverul de joc este gata, chiar și o persoană de 13 ani va putea să spună: "Du-te la mine, preotul meu în foc, am creat!"
_________________
HyperHost.UA - hosting de încredere și ieftin!

Pe scurt, întreaga mașină, dar 99,9% din farturi sunt aprinse de la jocuri. aici în această direcție și a trebuit să facă o prejudecată. Ventilatorul din instrument și frenezia scrisului de pălării.
_________________
HyperHost.UA - hosting de încredere și ieftin!

Ce fel de server web puneți pe calculatorul de acasă? - din aceeași serie, simplu, ușor, ușor de înțeles și chiar prost.
Și că el a făcut cu ușurință prieteni cu prog-serverul jocului.


Aș pune NGINX și se conectează la partea de server a jocului cu un soclu.
_________________
HyperHost.UA - hosting de încredere și ieftin!

Dacă jocul este un site care este accesat din browser - va merge orice denwer la localhost.
_________________
HyperHost.UA - hosting de încredere și ieftin!

21. P.S. (Pentru sarbatorile lunii deja): În cazul în care codificarea necesară pentru a instala dop.bibliotek care au nod, este „kosher“ care intră în folderul jocului (cmd consola, pp.10-11), și efectuarea acolo următoarea comandă: instala NPM <имя_этой_библиотки> --salva
(fără paranteze unghiulare și cu postscript obligatoriu - salvați, bine, nu uitați să scrieți o comandă pentru a apăsa Enter))

P.P.S. Sam a săpat totul, a treia zi
P.P.P.S. Pentru evoluții mai serioase, desigur, industria mondială folosește toate aceste apache-uri, denveres, php, c ++ și așa mai departe.

proj \ sr.js (server server de jocuri):

Un server web tipic (static) pe portul 8080 (oferă o pagină web browserului client)

Selectați toate codurile: var http = require ('http');
var static = necesită ('nod-static');

// Creați o instanță de server nod-statică pentru a servi folderul "./public"
// Creați un server web (care prelucrează datele paginii web client din subfolderul "public" și trimite această pagină web către browserul client)

var fișier = static.Server nou ('./ public', ); // în configurația "cache", caching-ul paginilor web emise de serverul web către browser-ul client a fost dezactivat

http.createServer (funcție (cerere, răspuns)

request.addListener ('end', function ()
file.serve (cerere, răspuns); // Serviți fișierele! - satisfacem cererile browser-ului clientului ("cerere") oferindu-le un răspuns ("răspuns")
>) CV (); // a adăugat funcția de ascultător al solicitării clientului

>) ascultați (8080); // serverul web "ascultă" (lenene) pe portul 8080

Serverul de prize Web pure de pe portul 8081 (site-urile web curate sunt site-uri web obișnuite, fără a utiliza bibliotecile socket.io)

Selectați tot Codul: var WebSocketServer = cer noi ('ws');
var webSocketServer = nou WebSocketServer.Server (); // server-server web "ascultă" (lenene) pe portul 8081

var clienți = <>; // array - clienții conectați la serverul serverului web

webSocketServer.on ("conexiune", funcție (ws) // setarea funcției pentru procesarea evenimentului conexiunii clientului webcenter
var id = Math.random (); // Generat în mod aleatoriu "id client nou"
clienții # 91; id # 93; = ws; // "a pus" datele unei conexiuni web a unui nou client, în matricea de clienți prin id-ul indexului






console.log ("Avem o nouă conexiune web:" + ws + "; clientului i se atribuie id:" + id); // dezabonat în consola server

clienți # 91; id # 93; .send ("Serverul serverului web vă spune id-ul dvs. de client:" + id); // trimiteți noului nostru client un mesaj

// manipulatorul de evenimente al sosirii mesajului de la client - setăm funcția care procesează acest eveniment
ws.on ("mesaj", funcție (mesaj)
pentru (var cheie în clienți) // sort prin gama noastră de clienți
dacă (client # 91; cheie # 93; == ws) // dacă acesta este clientul nostru curent
console.log ('Din client (' + + + ') a primit mesajul:' + mesaj); // dezabonat în consola server
clienți # 91; tasta # 93; .send ('Serverul Web răspunde la mesajul dvs., clientul (' + + + '): ați primit următorul mesaj:' + message); // trimiteți un mesaj de răspuns acestui client
>
>
>);

// handlerul evenimentului când clientul a deconectat - setați funcția care gestionează acest eveniment
ws.on ('close', funcția ()
console.log ("Conectare client închis ('+ id +') '); // dezabonat în consola server
ștergeți clienții # 91; id # 93 ;; // ștergeți clientul dezactivat din matricea clientului
>);

>); // sfârșitul funcției care procesează evenimentul de conectare al site-ului web client

Cod de server suplimentar

Selectați tot Codul: console.log ("Serverul rulează pe porturile 8080 (static prin nod), 8081 (prize de Web pure)");

proj \ public \ index.html (pagina web a clientului pe care serverul web static le livrează browserului client):

Selectați tot Codul:






Browserul dvs. trebuie să accepte HTML5 pentru a rula acest joc

Jocul nostru

Browserul dvs. trebuie să accepte HTML5 pentru a rula acest joc
- creați canava (și dacă browserul nu o acceptă, browserul scrie mesajul nostru despre acest lucru)


- jocuri client client, în această pagină web client, desenat pe panza


- apelează funcția programului de jocuri client

proj \ public \ cl.js (programul client al jocului, pe pagina web a clientului, desenat pe panza):

Conectori Web (curat, fără utilizarea bibliotecilor socket.io)

Selectați tot Codul: if (! Window.WebSocket) // dacă browserul nostru client nu acceptă site-uri web curate
document.body.innerHTML = 'WebSocket nu este acceptat în acest browser.';
>

// creați o conexiune bazată pe web
var socket = nou WebSocket ("# 91; color = # FF0000 # 93; ws: //0c4807fc.ngrok.io#91; / color # 93;");

// handlerul mesajelor primite (de pe un server websocket)
socket.onmessage = funcție (eveniment)
var incomingMessage = event.data;
alertă (incomingMessage);
>;

Selectați tot Codul: window.addEventListener ('redimensionare', redrawCanv, false);
window.addEventListener ("orientarechange", redrawCanv, false);

Selectați tot Codul: // redrafli panza
funcția redrawCanv ()
cnv = document.querySelector ("canvas");
cnv.setAttribute ('lățime', okrc (window.innerWidth * 0.98));
cnv.setAttribute ("înălțime", okrc (window.innerHeight * 0.98));

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

//. Apoi, aici este codul pentru a desena o imagine client a jocului pe panza

mo =; // coordonatele cursorului mouse-ului
cnv.addEventListener ("mousemove", onMouseMove, fals); // creați un ascultător al mișcării mouse-ului
cnv.addEventListener ("faceți clic pe", onClick, false); // creați clickerul (clic sau mouse-ul) al mouse-ului
>

Selectați tot Codul: // Se rotunjește până la Total
funcția okrc (n)
mr = Math.round (n);
dacă (mr retur mr-1
>

// ascultătorul mișcărilor mouse-ului
funcția onMouseMove (e)
mo.x = e.clientX - cnv.offsetLeft;
mo.y = e.clientY - cnv.offsetTop;

dacă (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 = pl.hand.cur;
dacă (! (mo.x> = pl.hand.cards # 91; cur # 93; .x mo.x <= plr.hand.cards[cur].xe && mo.y>= pl.hand.cards # 91; cur # 93 ;.y mo.y <= plr.hand.cards[cur].ye))
var ikol = pl.hand.cards.length - 1;
pentru (var i = 0; i <= ikol; i++)
dacă (mo.x> = plr.hand.cards # 91; i # 93; .x mo.x <= plr.hand.cards[i].xe && mo.y>= pl.hand.cards # 91; i # 93 ;.y mo.y <= plr.hand.cards[i].ye)
plr.hand.cur = i;
DrawCard (cărți de plată # 91; i # 93;);
pauză;
>
>
>
>
>;

// ascultătorul clicurilor (lkm sau cms) mouse-ului
funcția onClick (e)
outgoingMessage = "clic cu mouse-ul: # 91; x: "+ mo.x +" y: "+ mo.y +" # 93; ";
socket.send (outgoingMessage);

8. În codul sr.js, am folosit munca cu http. Prin urmare, vom instala pentru nod această bibliotecă, pe care o folosim în cod:
9. Se deschide consola de comandă (cmd).
10. Se duce (folosind comenzile CD-urilor) în proj-ul tatălui
11. După ce ați venit la acel tată. tastați comanda:
npm instalați
(apăsați Enter)
- în dosarul proj, ar trebui să apară subfolderul "node_modules"

12. Lansarea pe cer:
13. Programul ngrok, a pus în același director tata proj (la rădăcină) - este mândru de a arăta jocuri newfound nostru servaku (și el și serverul vebsoket-webserver statikv în ea) pe Ineta ajutorul acestui program.

14. Se deschide consola de comandă (cmd).
15. Se duce (folosind comenzile cd) în interiorul tatălui proj
16. După ce ați venit la acel tată. tastați comanda:
ngrok http 8080
(și apăsați Enter)
- hurray, portul 8080 (server web static) este aruncat în Internet!

17. Se deschide încă o consolă de comandă (cmd).
18. Se duce (folosind comenzile cd) în proj-ul tatei
19. După ce ați venit la acel tată. tastați comanda:
ngrok http 8081
(și apăsați Enter)
- hurray, port 8081 (web-server) este aruncat în Internet!

22. Se deschide încă o consolă de comandă (deja, a treia) (cmd).
23. Se duce (folosind comenzile cd) în interiorul projului tatei
24. După ce ați venit la acel tată. tastați comanda:
nod sr.js
(și apăsați Enter)
- hurray, serverul nostru de jocuri rulează (este același lucru, iar serverul web este static simultan - este același lucru, iar serverul de web încorporat în combinație)
(și ngrokki care sunt mai mari, și-a aruncat porturile - portul de server web este static, 8080 - și, de asemenea, portul prizelor web, 8081 - pe Internet)

35. P.S. (Pentru sarbatorile lunii deja): În cazul în care codificarea necesară pentru a instala dop.bibliotek care au nod, este „kosher“ care intră în folderul jocului (cmd consola, pp.10-11), și efectuarea acolo următoarea comandă: instala NPM <имя_этой_библиотки> --salva
(fără paranteze unghiulare și cu postscript obligatoriu - salvați, bine, nu uitați să scrieți o comandă pentru a apăsa Enter))
36. P.P.S. Pentru a limita în loc de două porturi (8080 și 8081 în exemplu) un singur port (atârnat pe el și servere web și serverul staticii vebsoket) - NU!







Articole similare

Trimiteți-le prietenilor: