Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    43

    Sviluppo applicazione chat web tramite java

    Ciao a tutti,

    sto progettando di realizzare una chat su una piattaforma web già esistente basata su java.
    L'idea è quella di sviluppare un java application server da installare su un server tomcat e permettere l'accesso ai client tramite pagine jsp\ajax via browser.

    Può avere senso, in alternativa, usare un sistema che eviti il polling per il refresh della chat, magari attraverso dei listener sul client? Quanto si complicherebbe e che strumenti servirebbero (un applet? un plugin?)

    Grazie in anticipo per qualunque suggerimento!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da LsKoder Visualizza il messaggio
    Può avere senso, in alternativa, usare un sistema che eviti il polling per il refresh della chat
    Il polling in questo caso (chat) generalmente è il problema minore, come si dice. Se proprio si vuole evitarlo ci sono sicuramente varie tecniche. Una quella dell'uso del recente standard websocket ma deve esserci il supporto nel browser e anche lato application-server/webapp.

    Quote Originariamente inviata da LsKoder Visualizza il messaggio
    magari attraverso dei listener sul client?
    Cosa intendi per "listener" in questo contesto?

    Quote Originariamente inviata da LsKoder Visualizza il messaggio
    Quanto si complicherebbe e che strumenti servirebbero (un applet? un plugin?)
    Consiglierei di "dimenticare" applet o plugin. Le applet poi implicano altre questioni sulla security (specialmente con i recenti runtime Java).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    43
    Ciao,

    ti ringrazio per la risposta.
    Lato server, volendo fornire alcuni strumenti più sofisticati e volendo evitare di intasare il dbms di richieste (che è condiviso con altri sistemi), vorrei sviluppare un server web application in grado di gestire le sessioni degli utenti e le conversazioni.
    Ci sono particolari accorgimenti o qualche interessante articolo che mi suggerite di leggere da cui poter ricavare informazioni preziose?

    Ho già un'idea di come sviluppare la piattaforma perchè ho già esperienze in merito ma vorrei fare qualche approfondimento e spero di ricevere qualche buon consiglio. Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    43
    Vorrei condividere alcune riflessioni sulla modalità di implementazione della chat.
    Avendo a disposizione 2 application server e un database server, le 3 soluzioni che mi vengono in mente sono:

    1. [Soluzione più semplice] Sviluppare una chat pura jsp+ajax che accede direttamente al db (ossia ogni x secondi dovrà effettuare un'estrazione dei nuovi messaggi e un update di un datetime per notificare il suo stato *online*).

    2-3. [Soluzioni più complesse] Sviluppare una chat jsp + ajax + servlet in modo da gestire a livello applicativo alcuni aspetti della chat, quale ad esempio la gestione delle sessioni attive. In questo modo ridurrei tantissimo carico sul db spostandolo a livello applicativo ed evitando inutili interrogazioni sul db.
    Disponendo di 2 application server, quest'ultima soluzione può ramificarsi in 2 approcci:
    - Installare la servlet su entrambi i server ma reindirizzare tutto il traffico su uno dei due (l'altro si usa come backup)
    - Installare la servlet su entrambi i server ma implementare un meccanismo di comunicazione sulle servlet che ne permetta la sincronizzazione

    Sarei tentato a realizzare la soluzione più semplice ma vorrei un'opinione anche vostra, considerando che si stima un numero di utenti di circa 200 contemporaneamente connessi e che tutte le comunicazioni avverranno solo tra 2 persone (ossia non saranno disponibili room multiutente).

    Qualsiasi suggerimento è ben accetto. Grazie in anticipo
    Ultima modifica di LsKoder; 25-06-2015 a 09:45

  5. #5
    lato frontend (dove l'utente visualizza la chat e digita i messaggi) usi javascript/websocket con la piattaforma js che piu preferisci (se ne hai bisogno, oppure jquery solo). Tendenzialmente, tutta la chat la puoi mettere tranquillamente fuori dal contesto jsp perchè sarebbe una "semplice" applicazione html5. Lato java devi prepare il socket server e tutta la logica di gestione dei client e della chat, inviando e ricevendo messaggi sulle connessioni socket dei client. Oppure installare un server xmpp per la chat e configurare quello. Dipende.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    43
    Ciao,

    grazie per questa interessante proposta.
    Ho letto alcune documentazioni sulla soluzione del websocket, ma a parte la riduzione del traffico polling-based introduce alcuni problemi:
    - Compatibilità con il browser (alcune macchine del cliente utilizzando windows xp...)
    - Compatibilità con il server (gli application server dispongono di tomcat e vorrei evitare di introdurre altre librerie)
    - Le complicazioni della mia soluzione 3 sono analoghe e quindi risulta necessario sviluppare un sistema di comunicazione tra i 2 application server (più che un problema, una nota)
    - Vulnerabilità note per questa soluzione (non ho avuto modo di approfondire però molti testi trattano di vulnerabilità gravi note).

    Il problema più evidente per me rimane la compatibilità. Mi piacerebbe quindi approfondire l'analisi delle 3 soluzioni che ho proposto (o ricevere proposte alternative). Grazie

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.