Gå til innhold

[Løst]Serverside til desktop kommunikasjon. Finnes den?


Anbefalte innlegg

Heisann!

 

Jeg har en form med noen knapper (som har en ID) i. Det jeg lurer på er hvordan en kan få til følgende:

 

- Jeg trykker på en knapp

- Javascript fanger opp buttonID

- buttonID sendes til en f.eks Java applikasjon som kjører på webserveren. (La oss si at webserver og appen kjøres på en og samme maskin).

 

Jeg finner rett og slett ikke en måte å få til en kommunikasjon mellom en webserver og en desktop applikasjon på :(

 

Har dere noen tips/noen idèer rundt dette? Er det i det hele tatt mulig eller kjemper jeg forgjeves her?

Lenke til kommentar
Videoannonse
Annonse
Det mest vanlige er å bruke AJAX

 

Det finnes mange gratis AJAX-rammeverk du kan benytte.

 

om ikke jeg tar helt feil, så kjøres AJAX kun i min browser. Og kommunikasjonen foregår kun mellom min browser og webservern. Hva om jeg vil sende det videre til en slags lytter som jeg kjører i bakgrunnen som en Java app?

Lenke til kommentar
Du kan benytte javascriptobjektet XMLHttpRequest for å sende asynkrone requests til webserveren sin. Alt står beskrevet i linken jeg sendte.

 

Istedet for å lage et stort AJAX-rammeverk selv så kan du benytte eksisterende.

Noen finner du her: http://en.wikipedia.org/wiki/List_of_Ajax_frameworks

 

ok enten så har du misforstått meg eller så datt jeg av lasset :p

 

Jeg HAR allerede en AJAX sak, og jeg har buttons, og de har ID, og jeg kan sende IDen til buttonPressed til en "alert" sak. Greia er hvordan kan jeg få det ut fra "web-miljø-bobla" til "windows-miljø-bobla" som kjører en applikasjon ^^

Lenke til kommentar

La meg se om jeg skjønner:

 

Du har en websider, og i webbrowseren klikker du på en knapp.

ButtonId sendes til webserveren.

Det du vil er at webserveren skal kommunisere med en applikasjon som også kjører på webserveren, og sende buttonId til denne applikasjonen?

 

Da hadde det jo vært veldig greit om du kunne fortelle hvilken webserver og OS du kjører.

Er det dere som har laget applikasjonen som kjører på webserveren?

Lenke til kommentar
La meg se om jeg skjønner:

 

Du har en websider, og i webbrowseren klikker du på en knapp.

ButtonId sendes til webserveren.

Det du vil er at webserveren skal kommunisere med en applikasjon som også kjører på webserveren, og sende buttonId til denne applikasjonen?

 

Da hadde det jo vært veldig greit om du kunne fortelle hvilken webserver og OS du kjører.

Er det dere som har laget applikasjonen som kjører på webserveren?

 

Det er ikke akkuratt mye jeg får sagt, men tenk deg det her:

 

En webserver (f.eks apache eller whatever. Finnes flere av de) kjører på en maskin. Man taster URL i en browser, webservern på den maskina viser en f.eks HTML side. På denne er en form med buttons og Javascript som kjører og fanger opp events. Når jeg trykker på Button#1, -> alert(id); f.eks.

 

Men så har jeg en annen applikasjon på samme maskin, som "lytter" og vil fange opp den "id"en. Tror jeg fant faktisk noe som KAN gjøre det jeg trenger HER.

 

Det er i grunn det jeg trenger :p

Lenke til kommentar
Vil du at webserveren skal kommunisere med en applikasjon på webserveren eller på klienten? Eller en annen maskin for den saks skyld?

 

Yupp, jeg vil at webserveren skal kommunisere med en applikasjon på samme maskin som webserveren ;) (dvs localhost funker helt greit til dette formålet :p )

Lenke til kommentar
Med mindre du har verdens strengeste NDA så må du nesten forklare oss hva slags webserver du har, hvilket OS, hvilket språk webappen er skrevet i og hvilket språk desktop-appen er skrevet i.

 

Jeg tviler sterkt på at NDAen din hindrer deg i å si "Windows".

 

- Desktop-appen blir skrevet i Java

- Web-appen spiller det ingen rolle, men HTML/PHP + JScript tenker jeg

- Webserver: usikker her. Hva enn nå som kommer til å trengs.

- OS: Windows

 

Det spiller strengt tatt ingen rolle hvilket språk som blir brukt tenker jeg, men PHP for den siden som har knapper, er nok å regne med. Desktop-appen blir skrevet i Java og er et krav.

Lenke til kommentar
<snip>

Yupp, jeg vil at webserveren skal kommunisere med en applikasjon på samme maskin som webserveren ;) (dvs localhost funker helt greit til dette formålet :p )

 

Kan du ikke bruke en database til slikt noe?

 

Vel, det kommer til å bli brukt til å styre noe i så å si realtime (noe delay blir det nok, men). Jeg er redd for at database "polling" kan være for ressurskrevende.

 

Jeg har funnet denne. Og den fungerer fint. Dette er egentlig bare en test/research av sockets, siden jeg er blank på det.

 

Problemet dog, er at i det servern tar imot connection fra client, så lukker den forbindelsen.

Typ:

Server: *lytter*

Client: "Hei!"

Server: *mottat*

Server: *lukke fobindelse*

 

Har dere noen tips til hvordan man kan holde den forbindelsen oppe så lenge klienten "lever"(f.eks så lenge klienten ikke sier eksplisitt "Close connetion please, server") ?

 

Alle guider/kode eksempler jeg har vært gjennom lukker forbindelsen/socketen i det dem mottar noe :/

Lenke til kommentar
Hvorfor ikke bruke UDP? Etter mitt syn passer UDP bedre inn i et realtime system enn TCP.... java og webserver passer heller ikke inn i mitt syn på realtime system, men men.

 

java og webserver var ikke opp til meg desverre ^^

 

Uhm, hva mente du med UDP? Mellom hvilke deler? Evt hva innebærer det? (kan sikkert researche noe av det selv, men det hadde vært fint å bli i det minste pekt i riktig retning :) )

 

edit: jeg har noe grunnleggende kjennskap til UDP/TCPIP, og fordeler og ulemper ved disse, men jeg har aldri programert noe i den retningen ^^

Endret av MrLeftfield
Lenke til kommentar
<snip>

Yupp, jeg vil at webserveren skal kommunisere med en applikasjon på samme maskin som webserveren ;) (dvs localhost funker helt greit til dette formålet :p )

 

Kan du ikke bruke en database til slikt noe?

 

Vel, det kommer til å bli brukt til å styre noe i så å si realtime (noe delay blir det nok, men). Jeg er redd for at database "polling" kan være for ressurskrevende.

 

Jeg har funnet denne. Og den fungerer fint. Dette er egentlig bare en test/research av sockets, siden jeg er blank på det.

 

Problemet dog, er at i det servern tar imot connection fra client, så lukker den forbindelsen.

Typ:

Server: *lytter*

Client: "Hei!"

Server: *mottat*

Server: *lukke fobindelse*

 

Har dere noen tips til hvordan man kan holde den forbindelsen oppe så lenge klienten "lever"(f.eks så lenge klienten ikke sier eksplisitt "Close connetion please, server") ?

 

Alle guider/kode eksempler jeg har vært gjennom lukker forbindelsen/socketen i det dem mottar noe :/

 

Jeg har utviklet et eget rammeverk for distribusjon av sanntidsdata fra en webtjener til forskjellige typer klienter, som browsere (ajax), .NET, Java SE, og Java ME. Klientene kan kommunisere med tjeneren både synkront og asynkront. Dette innebærer også at klientene kan motta data i sanntid fra serveren. Her er det ikke snakk om polling, men om langvarige oppkoblinger. Lange oppkoblinger kan ofte bli terminert i brannmurer og proxy-servere, men da vil klientene straks koble seg opp igjen og fortsette å 'lytte'.

 

Systemet har vært i bruk i over et år, blant annet i forbindelse med distribusjon av sanntidsdata til mobiltelefoner som kjører en J2ME-applikasjon jeg har vært med på å utvikle. Det fungerer helt utmerket, selv over vanlig GPRS. Det skal også tas i bruk i en .NET-applikasjon, og da er klienten i form av en DLL, som kan benyttes fra Windows-programmer som har behov for sanntidsdata i en eller annen form.

 

En av fordelene med protokollen vår er at den går over port 80, noe som gjør at kundene ikke trenger å gjøre noe i brannmurene sine.

 

Dette er altså et kommersielt produkt, så jeg kan ikke komme med noe eksempelkode akkurat. Prinsippet med langvarige forbindelser er derimot veldig enkelt, og det finnes mange gode kodeeksempler på nettet. Det er bare å google ivei. Det som er utfordringen er å takle mange forbindelser på en effektiv måte, uten at serveren går i kne.

 

Werner

Lenke til kommentar
Dette er altså et kommersielt produkt, så jeg kan ikke komme med noe eksempelkode akkurat. Prinsippet med langvarige forbindelser er derimot veldig enkelt, og det finnes mange gode kodeeksempler på nettet. Det er bare å google ivei. Det som er utfordringen er å takle mange forbindelser på en effektiv måte, uten at serveren går i kne.

 

Werner

 

Greit nok, men det hjelper meg ingenting :)

 

Alt jeg trenger for øyblikket er strengt tatt en måte å holde en socket åpen til clienten sier "Nå drar jeg, så du kan sikkert lukke døra, mmkai".

Lenke til kommentar
<snip>

Alt jeg trenger for øyblikket er strengt tatt en måte å holde en socket åpen til clienten sier "Nå drar jeg, så du kan sikkert lukke døra, mmkai".

 

hmm Sockets pleier ikke å lukke seg av seg selv, står det noe i dokumentasjonen om dette, mulig det er noen i den underliggende koden som gjøre dette.

 

Litt offtopic:

Er det er virkelig realtime system du jobber med eller et mer så-fort-som-mulig system?

Lenke til kommentar
<snip>

Alt jeg trenger for øyblikket er strengt tatt en måte å holde en socket åpen til clienten sier "Nå drar jeg, så du kan sikkert lukke døra, mmkai".

 

hmm Sockets pleier ikke å lukke seg av seg selv, står det noe i dokumentasjonen om dette, mulig det er noen i den underliggende koden som gjøre dette.

 

Litt offtopic:

Er det er virkelig realtime system du jobber med eller et mer så-fort-som-mulig system?

 

hmmm. Kanskje ikke heeeelt realtime, men ja, det blir nok mer "så-fort-som-mulig". Det er nok naturlig at det blir forsinkelser gjennom så mange ledd, men såfortsommulig er akseptabelt.

 

Ang. dokumentasjon:

http://mediakey.dk/~cc/java-and-c-client-s...et-programming/

 

Det er denne koden jeg benytter meg av for øyblikket for å lære meg sockets (som sagt jeg er helt blank).

 

EDIT: Ble løst ved hjelp av PHP :)

Endret av MrLeftfield
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...