Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Luboš
Člen
Avatar
Luboš:25.6.2016 20:40

Ahoj chtěl bych si vytvořit chatovací aplikaci v ASP.NET MVC a nevím jak to udělat, aby když někdo pošle zprávu, tak aby se hned zobrazila i na ostatních počítačích. Díky.

 
Odpovědět 25.6.2016 20:40
Avatar
Lako
Člen
Avatar
Odpovídá na Luboš
Lako:25.6.2016 22:00

Základ je takový, že máš server, kde ti běží tvoje APS.NET aplikace a klient, který se připojí komunikuje se serverem pomocí javascriptu, server pak zprávy rozdistribuuje dál...

Docela dobře tohle umí signalR.

 
Nahoru Odpovědět 25.6.2016 22:00
Avatar
Luboš
Člen
Avatar
Luboš:25.6.2016 22:15

Z cvičebních důvodů bych to chtěl udělat bez signaR. Chci vědět jak to celé funguje.

 
Nahoru Odpovědět 25.6.2016 22:15
Avatar
Lako
Člen
Avatar
Odpovídá na Luboš
Lako:25.6.2016 23:55

Hm.
Jednodušší varianta tedy je, že si javascriptem budeš šahat pro data na server v nějakém intervalu a ty zobrazovat.
Je to ale takové bezruké řešení. SignalR má tu výhodu, že server ví o připojených klientech. Takto o nich bude vědět jenom v případě, že si řeknou o data...
No a uplně nejjednodušší řešení je, že stránku budeš v nějakém intervalu obnovovat... (je to vlastně jiná interpretace "šáhnout si pro data")

 
Nahoru Odpovědět 25.6.2016 23:55
Avatar
Ondřej Krsička
Redaktor
Avatar
Ondřej Krsička:26.6.2016 10:51

Použij AJAX.

  1. Uživatel1 napíše zprávu a pošle ji na server.
  2. Server zprávu uloží a pošle všem uživatelům - AJAXem, takže se nic nenačítá.
  3. Všichni uživatelé zobrazí zprávu.
 
Nahoru Odpovědět  ±0 26.6.2016 10:51
Avatar
Luboš
Člen
Avatar
Luboš:26.6.2016 12:54

Díky Ondřeji. AJAX zatím neumím, ale doplním si.

 
Nahoru Odpovědět 26.6.2016 12:54
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Luboš
Jan Vargovský:26.6.2016 14:39

AJAXem to neuděláš real-time, akorát budeš zatěžovat server... Mrkni na SignalR a máš to splácané za 10m :)

EDIT: Aha, tak už čtu, že to tu někdo zmínil, tak nic.

Editováno 26.6.2016 14:40
 
Nahoru Odpovědět 26.6.2016 14:39
Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:26.6.2016 14:43

Jestli si chceš napsat raw řešení, bez žádné knihovny napovrch, tak si to udělej první v SignalR (záležitost pár minut) a pak se podívej jak to funguje na pozadí a co ti to generuje za JS. Pak si můžeš použít technologie, které se používají na pozadí - WS, SSE, ...

 
Nahoru Odpovědět 26.6.2016 14:43
Avatar
Jiří Gracík
Redaktor
Avatar
Nahoru Odpovědět 26.6.2016 17:43
Creating websites is awesome till you see the result in another browser ...
Avatar
Marian Benčat
Redaktor
Avatar
Marian Benčat:3.7.2016 18:26

SignalR používá interně taky I AJAX. SignalR funguje tak, že doáže detekovat jaké technologie klient zvládá a na zákkladě toho použije vnitřně tu nejlepší.. Pokud zvládne WebSockets, použije websockets.. pokud neumí websockets a umí ajax, použije ajax... pokue neumí websockets a neumí ajax, použije iframe a chunked komunikaci... atd atd..

SignalR tedy není tak, že je vždy a všude websockets. Takže SIgnalR může používat standardně jen ajax (třeba long polling, nebo neblockujici query spam). Záleží na klientovi.

Nahoru Odpovědět  +1 3.7.2016 18:26
"C# 3.0 (2007) volal Java 8 (2014), že chce svoje featury zpět"
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 10 zpráv z 10.