NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Verquido
Tvůrce
Avatar
Verquido:22.12.2016 19:47

Zdravím, chtěl bych se zeptat na pár věcí. Dělám livechat pomocí NodeJS a jde o takové to jak mají různé stránky zavedeno jako chat pro zákaznickou podporu jestli víte co myslím. Takže..

  • Všechny tutoriály jsou dělaný jakože celá stránka jako chat. Jak to tedy udělat jen do toho jednoho okýnka chatu bez toho aby uživatel musel psát tu adresu + port serveru a ta NodeJS aplikace se týkala jen toho okna chatu.
  • Jak udělat aby se ty chaty od uživatelů nějak shromažďovali na jednom místě (nějaký admin panel)
  • Jak udělat záložky, ( chatovací okna )?

No to je tak základ co bych potřeboval. Nicméně bych byl rád za někoho kdo s tímhle má zkušenosti a byl by ochotný mi s tím pomoci více :) Bude toho možná víc tak abych kvůli tomu nezakládal pořád nová vlákna :) Díky moc.

 
Odpovědět
22.12.2016 19:47
Avatar
Odpovídá na Verquido
Martin Štěpánek :23.12.2016 19:29

Tahle problematika live chatu řešeného pomocí NodeJS mě taky dost zajímá a zatím jsem na internetu nedohledal žádné materiály v češtině (angličtinu moc dobře neovládám). Tzn. kdyby někdo ochotný třeba napsal i nějaký seriál zde na ITN, tak bych to také dost ocenil. O:-)

Nahoru Odpovědět
23.12.2016 19:29
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
Odpovídá na Verquido
Petr Štechmüller:23.12.2016 19:38

Ahoj, na serverovou část můžeš použít kódů z tutoriálů. Ty panely, záložky, to už je otázka frontendu. Na to bych použil asi nějaký hotový framework (ne jQuery), ale třeba Angular2, nebo React, nebo cokoliv jiného.

Nahoru Odpovědět
23.12.2016 19:38
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Petr Štechmüller
Verquido:23.12.2016 22:20

Ano, dejme tomu že si udělám celý chat který funguje. Jenže ten chat funguje jen když napíšu adresu např. localhost:3000. Tzn že nodeJS vygeneruje svojí celou novou stránku s chatem. Ale jak to mám pak dostat do toho jednoho chatovacího okna aby ten Node negeneroval celou tu stránku ale jen se to týkalo toho elementu?

 
Nahoru Odpovědět
23.12.2016 22:20
Avatar
Verquido
Tvůrce
Avatar
Odpovídá na Martin Štěpánek
Verquido:23.12.2016 22:21

jj, těch Anglických tutoriálů je plno. Mohl bych ty základy z angličtiny přeložit sem na ITN. jenže to pokročilejší co mi dělá problémy tu stejně nebude :)

 
Nahoru Odpovědět
23.12.2016 22:21
Avatar
Odpovídá na Verquido
Petr Štechmüller:24.12.2016 10:08

Tak se nebudeš připojovat na locahost, ale na předem definovanou adresu. Ten NodeJS server běží u nějakého poskytovatele, ten ti dá IP adresu a na tuhle adresu se budeš připojovat v klientovi.

Nahoru Odpovědět
24.12.2016 10:08
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Patrik Smělý
Tvůrce
Avatar
Odpovídá na Verquido
Patrik Smělý:24.12.2016 16:48

Ahoj, tyto chaty jsou obvykle dělané přes websockety je to protokol k tomu určený (ws://) poskytuje totiž full-duplex komunikaci čili client můžeš posílat data na server ale i server může posílat data připojenému uživateli. K tvorbě takové aplikace se používá převážně Node.Js jako backend (server) client pak může být např. webová stránka nebo jakákoliv aplikace, která podporuje ws protokol.

Dokonce jsem zde o tomto napsal seriál, který pojednává o jednoduché knize návštěv, která funguje na principu realtime, tudíž uživatel přidá příspěvek do knihy a ten se přidá okamžitě i všem ostatním uživatelům - sice je tam implementace trochu odlišná nežli by jsi ty chtěl protože client svoje data neposílá rovnou přes ws protokol na server ale posílá je ajaxově na phpčko a phpčko (před odesláním data uloží do DB k pozdějšímu zobrazení) pomocí curlu posílá data na NodeJs server, který následně data pošle všem uživatelům.

Tím chci říct, že ta PHP část by tom vůbec nemusela být a client by data mohl rovnou přes websockety poslat na server a vše by se mohlo dělat na straně NodeJs ale jelikož mám rád PHPčko a rád s ním zpracovávám data tak tam je :).

Teď se zaměřím na body, které si uvedl.

První bod už řeší princip websocketů, okénko si jednoduše uděláš v HTML, CSS a přes JavaScript do něj budeš vkládat zprávy, které přišli přes websockety. Adresu taky psát nemusíš, jelikož když se připojuješ přes ws protokol vždy musíš uvést na jaký server se chceš připojit. Takže např. přes JavaScriptovou knihovnu Socket.io se připojíš na server pomocí metody connect které do argumentů dáš adresu server v podobě stringu.

var socket = io.connect("localhost:3000");

shromažďování by šlo udělat na principu, že by se každá zpráva při odeslání socketu zároveň uložila do databáze.

Záložky lze udělat pomocí obyčejného JavaScriptu ale spíše doporučuji použít nějaký framework jako je Angular či Ember.JS nebo knihovnu jako je jQuery či React

Pokud by jsi potřeboval poradit tak mi neváhej napsat do zpráv :) rád ti poradím.

 
Nahoru Odpovědět
24.12.2016 16:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.