Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    71

    Broadcast su tutti gli utenti collegati

    Buona sera,
    Scrivo in questa sezione perché è il linguaggio di programmazione che sto utilizzando per sviluppare la mia webApp.

    Sul mio portale gli utenti devono effettuare delle offerte verso dei prodotti, inizialmente avevo pensato di utilizzare delle chiamate ajax temporizzate ad un secondo per vedere se ci sono stati aggiornamenti sul db ed eventualmente riportare la modifica sulla pagina. Ovviamente non mi sembra un idea molto pratica, soprattutto perché si parla di decina di migliaia di utenti collegati contemporaneamente, significherebbe un numero spropositato di chiamate inutili.
    Volevo sapere, come posso fare in modo che i browser si aggiornino solo quando viene effettivamente fatta un modifica sul DB?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Semplicemente non puoi.
    La comunicazione tra browser e server avviene tramite un protocollo (HTTP) di Richiesta/Risposta.
    Il client (browser) fa una richiesta, il server risponde.

    Non esiste la comunicazione in senso opposto: è sempre il client ad iniziare il colloquio (con una richiesta) e tale colloquio muore nel momento in cui il server invia la risposta. Il server non sa quanti e quali siano i client effettivamente connessi e non lo può sapere proprio per la natura del protocollo (e proprio perchè, di fatto, non sono connessi).

    L'alternativa è usare qualcosa che vada oltre il protocollo HTTP. E l'unica cosa che mi viene in mente è un'applet (che oramai stanno scomparendo) che mantiene una connessione costante col server. In questo caso il server può, effettivamente, colloquiare col client (visto che ne ha conoscenza).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    non potrebbe provare neanche con il concetto di push notification?

  4. #4
    Quote Originariamente inviata da fermat Visualizza il messaggio
    non potrebbe provare neanche con il concetto di push notification?
    usando dei websockets e inviando la notifica dal server ai client mediante quelli...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sì, non li conoscevo e non saprei come dire al browser di usarli, ma concettualmente è fattibile.

    Edit: visto, si può fare lato JavaScript oppure direttamente con il nuovo schema ws://

    Ciao.
    Ultima modifica di LeleFT; 24-02-2015 a 18:59
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99
    Beh, se non ho capito male hai un auction system quindi se il db viene modificato da un'offerta è scaturita sicuramente da uno degli n clients.

    Se agisci con Jsf ti basterebbe mantenere vivo un bean :

    codice:
    @ManagedBean
    @ApplicationScoped
    
    
    che registri ogni modifica e la renda nota tramite push a tutti i client-bean presenti (lascio a te la logica di interesse sulla View...).

    Ad ogni modo se non usi jsf come mvc ti puoi affidare ad un singleton ejb e lavorare similmente.

    ti garba?
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

  7. #7
    Quote Originariamente inviata da Gatsu78 Visualizza il messaggio
    Beh, se non ho capito male hai un auction system quindi se il db viene modificato da un'offerta è scaturita sicuramente da uno degli n clients.

    Se agisci con Jsf ti basterebbe mantenere vivo un bean :

    codice:
    @ManagedBean
    @ApplicationScoped
    
    
    che registri ogni modifica e la renda nota tramite push a tutti i client-bean presenti (lascio a te la logica di interesse sulla View...).

    Ad ogni modo se non usi jsf come mvc ti puoi affidare ad un singleton ejb e lavorare similmente.

    ti garba?
    No non ci garba ( un milanese non lo può dire...) il problema di Shiroga è quello di limitare le push al server e come ti è stato detto l'unico sarebbe quello di usare i websocket introdotti con Html 5 . Se vuoi seguire questa strada ti consiglio l'uso di un bel framework che si chiama Atmosphere

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.