Terve putkalaiset,
tiedustelisin että onnistuuko Silverlightilla tehdä nettisivuille pikku ohjelmaa johon pystyy kirjautumaan kaksi käyttäjää yhtäaikaa ja siten että toinen näkee mitä toinen tekee?
Esim. Helloworld ohjelma missä on Button ja kun toinen käyttäjä painaa sitä ilmestyy teksti Helloworld kummallekkin käyttäjälle.
Ongelma ei ole siis itse ohjelman teko vaan miten siihen saadaan kaksi käyttäjää? Onko edes mahdollista silverlightilla?
Millä hakusanoilla voisi hakea tietoa tälläisestä tai tietääkö joku tutoriaaleja aiheesta?
Voisin vaikka väittää että on, vaikkakin se varmaankin vaatii myös jonkin palvelinpuolen pulikan (esim. php-skriptin) väliin.
Osaisitko sanoa mitään hakusanoja aiheesta?
Vaikea etsiä tietoa kun ei tiedä miksi tälläistä "tekniikkaa" edes kutsutaan. Perus setit on googlattu ilman tulosta, esim. "two users on silverlight program"
Lähtökohtasi on väärä. Molemmilla käyttäjillä on oma ohjelmansa, ja ohjelmien pitää jollain tavalla kommunikoida keskenään, tässä tapauksessa verkon yli. Sopivampi haku on Silverlight network.
Silverlightin verkkotoimintojen rajoituksista on kerrottu osoitteessa http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx
Melko yksinkertainenkin verkko-ohjelmointi on aika paljon helloworld-tason yläpuolella, ja artikkelin perusteella näyttäisi, että siitä on Silverlightissä tehty aivan erityisen vaikeaa, jos pelkkä HTTP-yhteys ei riitä.
Kiitos Metabolix,
no en sitä siihen helloworldiin tarvitsekaan, ohjelma tulee olemaan jotain muuta. Osaatko sanoa olisiko sitten jollain muulla ohjelmalla järkevämpää lähteä koittamaan? Esim. flash?
Käytännössä joudut joka tapauksessa toteuttamaan järjestelmän niin, että palvelimesi välittää tietoja ohjelmien välillä, koska muussa tapauksessa käyttäjän palomuuri tai reititin luultavasti estää toiminnan täysin.
Jos palvelin on aivan oma, voit koodata palvelinkoneelle uuden palvelinohjelman, johon web-sovellus osaa yhdistää. Itse web-sovelluksen voi sitten tehdä melkein millä vain: käsittääkseni Flashilla saa helposti otettua yhteyden palvelimelle, jolta ohjelma on peräisin, samoin Javalla. Silverlightin kohdalla suurin työ on järjestää tuo erillinen politiikkapalvelin kuntoon (ks. artikkeli), minkä jälkeen sekin on melko lailla tasoissa.
Jos taas puhutaan jonkinlaisesta kotisivutilasta, HTTP-yhteys on ainoa vaihtoehto, eikä se ole kovin käytännöllinen, koska kaikki liikenne tapahtuu ohjelman aloitteesta, eli palvelin ei voi pyytämättä ilmoittaa, onko jotain tapahtunut. Joudut siis ensiksi selvittämään, millä skriptikielellä palvelimelle saa tehtyä sivuja, ja sitten kannattaakin aivan ensiksi tehdä se "nettisivu", jonka kautta ohjelmat lähettävät ja vastaanottavat tietoa. Käytännössä tiedonvälitys toimii niin, että napinpainalluksesta ohjelma lähettää HTTP-pyynnön "sivu.php?x=painettiin_nappia". Kaikki ohjelmat lähettelevät toistuvasti pyyntöjä "sivu.php?x=onko_jotain_tehty", joihin palvelin vastaa suuren osan ajasta viestillä "ei". (Pyyntö pysyy usein voimassa jonkin aika, joten optimointina voi laittaa palvelimen odottelemaan hetkeksi, tapahtuisiko kohta jotain; näin vähennetään liikennettä huomattavasti.)
Tätä kysellään sen verran usein, että täytynee tehdä pieni esimerkki.
Jos taas haluat tehdä "vain" yksinkertaisen chätin, niin kannattaa flashit ja silverlightit unohtaa ihan vain sen takia, ettet joudu useammalla softalla säätelemään.
Eli Javascriptillä vaan Ajax-kutsuja niin, menee ihan html-sivuilla. Tietenkin tämä vaatii myös ohjelmointiosaamista, mutta selkeästi vähemmän tuntemusta eri systeemien omista sudenkuopista.
Aihe on jo aika vanha, joten et voi enää vastata siihen.