PHP - Server e risposta asincrona

gpc

Utente Èlite
2,269
40
Avendo un server che svolge operazioni specifiche, qual' è il miglior modo di "rispondere" in maniera asincrona a applicazioni presenti su client?(le richieste di elaborazione arrivano proprio da tali client)
Grazie in anticipo
 

pabloski

Utente Èlite
2,868
916
Che intendi per asincrona? Un server sta lì fermo e aspetta che gli chiedano qualcosa. Al che fa quanto chiestogli e invia la risposta appena disponibile. Ovviamente è in grado di elaborare più risposte in parallelo, ma questo lo fanno tutti i web server.

L'asincronia riguardo semmai i client, ovvero l'uso di XMLHttpRequest, meglio conosciuto come Ajax.
 

gpc

Utente Èlite
2,269
40
intanto grazie,
hai capito perfettamente il concetto
Altri strumenti non ne esistono?
 

pabloski

Utente Èlite
2,868
916
non permettono un pò più libertà di linguaggi, rispetto ad Ajax?

No, perchè tutto quello che gira sul browser è Javascript. I browser non supportano altro. Ci sarebbe Flash ma è deprecato e ormai sta sparendo rapidamente. Ci provò Google con Dart e fu un flop. MS con ActiveX idem.

Ad oggi si può usare solo Javascript lato client. L'alternativa tra qualche anno sarà WebAssembly, che non è un linguaggio ma un formato binario che avrà compilatori per molti linguaggi. Attualmente esistono solo compilatori C++ e Javascript e qualche compilatore sperimentale per un paio di altri linguaggi.

Quindi, ad oggi, i browser di fatto supportano solo Javascript.

Se poi intendi applicazioni generiche, cioè client diversi dai browser, lì si può fare di tutto e di più. Ma la questione è che non è il server ad operare in maniera asincrona, in quanto il server si muove solo quando riceve una richiesta.

Anche se comincio ad avere il dubbio che per asincrono intendessi concorrente.
 

gpc

Utente Èlite
2,269
40
no no, intendevo asincrono
ad esempio se sul server gira php e su un sistema client c#, le websockets non permettono una "flessibilità" maggiore di utilizzo? (direi di si, rispetto al solo discorso browser)
 

pabloski

Utente Èlite
2,868
916
no no, intendevo asincrono
ad esempio se sul server gira php e su un sistema client c#, le websockets non permettono una "flessibilità" maggiore di utilizzo? (direi di si, rispetto al solo discorso browser)

Naturalmente non usare un browser significa anche non dover accettare i limiti che impone.

Sia chiaro che il programma php che gira sul server deve però occuparsi di tutto, cioè usa le socket per mettere su un servizio, accettare le connessioni, gestire i dati inviati e ricevuti, ecc... Idem per il programma client. E le websockets sono uno dei protocolli di livello 7 che si può utilizzare, ma non sei obbligato a farlo, puoi benissimo usare HTTP o anche qualcuno di questi https://en.wikipedia.org/wiki/Category:Application_layer_protocols o creare un protocollo ad hoc.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili