Bună ziua tuturor! O lungă perioadă de timp, deoarece nu e nimic nu ne-am publicat, nu era timpul, nu era nimic de a împărtăși ușor. Dar acum totul sa schimbat! Recent am decis să încerc Node.JS. Și, după cum era obiceiul său a vrut să chat-ul.
Aceasta are ca rezultat un chat multi-utilizator pe deplin funcțional.
Trebuie să spun că este încă umed. Poti comunica, dar ar trebui să încă mai bate la cap și nag, doar în momentul în care nu este foarte mult acolo, și nu este necesar, în principiu, asta e tot. Principalul lucru este faptul că chat-ul își îndeplinește funcția principală de chat!
Anonimatul și a vieții private. Pe server nu este stocat corespondența, chiar nici un jurnalele nu vor fi salvate. Toate mesajele și alte evenimente (cineva a venit sau a plecat de la chat-ul) a trimis imediat tuturor utilizatorilor camerei în care au loc evenimentele. Și nu, nu puteți vizualiza lista de utilizatori conectați. Același utilizator se poate conecta la camere diferite, pentru a alege un alt nick în camere, și nimeni nu mai știe că acest lucru este unul și același utilizator. Prin urmare, chat-ul poate fi numit chiar privat și anonim. Anonim pentru că în cazul în care link-ul nu este de o anumită persoană, și a pus pe undeva, sau dacă pur și simplu pe cineva care va rezolva numerele de cameră într-un rând și se încadrează în dvs., nu știu ce fel de persoană ar. Dar, în general, chat-ul este proiectat astfel încât o anumită persoană oferă un link către camera mea era necesar ca el să oameni care ar vrea să vorbească în particular, fără a privirilor indiscrete și fără păstrarea istoriei și bușteni. Am vrut să lega mai mult și HTTPS de server, a fost, de asemenea, în planurile, dar atunci asta e aruncat tot ... În plus, nu am un, certificat normal și atunci când vă conectați browser-ul să spun că într-un fel nu vrea să aibă încredere în acest site.
Iar dacă cineva vrea cineva să asculte, atunci el va găsi o cale, oricum, și nu chat-ul nu va salva ...) Deci este deja pe conștiința fiecărui)
Listei de utilizatori. Pe dreapta afișează o listă a participanților chat. Culoarea de nick umane actuale - portocaliu. Restul de culoare albastruie la ea. Rapoarte, cum ar fi colorat. Acest lucru este, probabil, făcut pentru ceea ce ar face mai ușor de vizual distinge mesajele lor de la care nu lor. Planul a fost: pentru a face loc pentru administratorul orice buton de pe lista de utilizatori, că el ar putea arunca utilizatorii nedorite din chat.
Există, de asemenea, o notificare cu privire la tastare. În partea stângă a porecla de utilizator, care câștigă un text, o pictogramă creion)
BB-coduri. Suport pentru unele simplu BB-Code:
[B] text aici destul de bold [/ b]
[I] și apoi înclinat ca Turnul înclinat [/ i]
[U] pentru ce? pentru care el a subliniat textul. [/ U]
[S] puteți citi acest ratari text? [/ S]
socket.io
socket.io folosit, care asigură comunicarea în timp real.
Ei bine, desigur, și alte camere de chat în timp real, de asemenea locul de muncă, dar folosesc diferite tehnologii, cum ar fi actualizarea timer-ul, interogări continue într-un cadru separat ascuns și alte lucruri care sunt încă mai mult ca cârje și sunt doar o imitație în timp real. Se folosește, de asemenea, o tehnologie diferită de cea mai recentă - WebSocket, și coborând ca suport browser-ul. În cazul în care browser-ul dvs. nu acceptă WebSocket, atunci există încă un lung-pooling interogări, precum AJAX, și chiar prize Flash-evye pot fi utilizate. În general, totul va fi testat și selectat cele mai potrivite pentru browser-ul curent. Și ar trebui să funcționeze peste tot, cel mai probabil. Pe lângă socket.io oferă transport convenabil la transmiterea eveniment în ambele direcții, de la client la server și vice-versa. Și toate acestea mult mai bine decât doar socketuri web ...) Ei bine, alte detalii tehnice pot fi citite și pe site-ul oficial al acestui lucru.
comenzi de consolă. Ei bine ... Numele este prea tare încă ...) Aceste comenzi - acest lucru este ceva care începe cu o bară oblică și este scris în câmpul pentru introducerea mesajelor. Până în prezent, există doar o singură echipă, și că «/ parte». Dacă introduceți această comandă, chat-ul este deconectat de la server și ... și totul. Apoi întuneric invizibil, dar nu re-intra în cameră sau selectați sau creați altul. A! «/ Alert» Există încă o echipă. Doar arată normal Alert-fereastra cu textul, care este al doilea parametru (scris de un spațiu). Restul echipei se poate face, dar este ca și în cazul în care nu este nevoie. Cu toate că poate fi orice comenzi administrative, cum ar fi interzicerea sau arunca un anumit utilizator de chat, sau cunoscut în comanda de IRC «/ mi» (uh-huh. Și, cu siguranță obține un alt IRC, dar fara serverul de IRC ... 🙂).
Care este rezultatul?
Dar, în final chatik. Multe idei diferite au fost, când am început să o fac. Dar apoi am făcut până la o anumită etapă de lucru și abandonate. Și acum am decis să termin articolul de dragul chiar mai sensibile, care ar fi fost posibil să-l distribui pentru a permite ... 🙂
Serverul este întotdeauna rulează. Adevărul este că nu știu ce fel de sarcină poate rezista ...) care pot fi după eliberarea acestui articol și a verifica 🙂
Ne vedem în chat 🙂
P.S. Acum, arhiva cu codul sursă. Va trebui să îmbunătățească app.js fișier - acolo setat ascultare de port.
El scrie că el nu poate găsi modulul goo.gl (chat nevoie de ea pentru a afișa link-ul scurt pentru camera de curent).
Pentru a remedia acest lucru, trebuie să instalați acest modul prin tastarea în consolă în directorul actual al echipei de proiect:
NPM instalați goo.gl
Alternativ, puteți instala pur și simplu (nu în dosarul curent, iar la nivel global acest modul) comandă: instalați NPM -g goo.gl
Vreau doar să vă avertizeze atunci când pentru a face acest chat, chiar și atunci când eram mic conștient de toate complicațiile, etc. nici măcar dosar care descrie pachetul și package.json sale dependențe a fost stabilit, prin urmare, cel mai probabil, chiar a instala librăriile necesare (cum ar fi Express și socket.io) nu va funcționa, deoarece versiune acolo are nevoie de un pic mai mari decât cele pe care le avem acum.
În orice caz - a scrie. ajutor)
Problema încă relevante? Dacă da, puteți scrie la mine în VC (care urmează să fie găsit pe porecla, ca într-o telegramă).