Web Messenger come "MSN-Messenger"

  • Creatore Discussione Creatore Discussione w_t
  • Data di inizio Data di inizio

w_t

Utente Attivo
3 Set 2007
121
0
16
Salve,
avrei la necessità di installare un sistema di messaggistica tipo il vecchio MSN-Messenger o Skype, mi spiego:

- ho un sito dove sono registrati un certo numero di utenti membri,
- l'utente navigatore vede chi è online e apre una chat con chi vuole, da qui in poi dovrei riuscire a svilupparlo con le seguenti caratteristiche:

1) La Chat lavora solo in "Privato", nessuno deve vedere le discussioni di altri.
2) L'utente navigatore apre una chat con un l'utente membro questo ultimo si aggiunge al proprio elenco utenti, contemporaneamente all'utente membro deve visualizzarsi nel proprio elenco chi lo sta contattando, il tutto no al prossimo invio di testo ma immediatamente come se lavorasse in "Sochet".
3) Si deve potere vedere quando l'altro sta digitando testo.
4) Non deve essere una chat con aggiornamento ogni secondo o altro periodo, se nessuno degli utenti scrive non devono partire interrogazioni a vuoto consumando solo banda inutile.
5) Non devo dovere installare al "Virtual Machine"
6) Non devo installare il "Flash Player"

Per il punto 5 e 6 , devo fare cosi dato che non tutti gli utilizzatori sanno fare queste cose oppure non tutti chattano da PC propri e quindi potrebbero essere bloccati per l'installazione di terzi software.

Domanda: con quale linguaggio posso fare questa chat ??

Grazie mille per la pazienza.
 
Ho aspettato un pò a rispondere, principalmente per vedere se qualche utente più preparato in materia si facesse avanti.
Ti posto i miei suggerimenti, successivamente ti consiglio di verificare ciò che ti dico tramite altri canali se non arriva nessun altro a partecipare alla discussione.

Visto le caratteristiche specifiche che richiedi, sono ovviamente da escludere tecnologie standard per la creazione di una chat basate su un linguaggio server side, più database come buffer e pollig frequente per vedere se ci sono nuovi messaggi.

Le alternative potrebbero essere o quella di usare java per gestire il demone della chat e svilupparle quindi col pushing (così che sia il server a distribuire i messaggi arbitrariamente e anche istantaneamente), oppure di usare WebRTC.

Pro e Contro metodo con Java:

  • Java è una tecnologia molto diffusa ma non è richiesto che i tuoi utenti debbano averlo installato nel pc in questo caso in quanto puoi usare javascript sul browser degli utenti per interfacciarti tramite WebSocket al demone java, senza bisogno così di necessitare di alcun client simil IRC.
  • Se decidi di usufruire di java, dovrai connetterti tramite socket al server e, chiaramente, con un crescente numero di utenti l'applicazione tenderà a gravare sempre più a livello prestazionale sull'infrastruttura server (aumentando i costi)
  • Chiaramente è una soluzione che consuma banda, anche se di meno rispetto ad altri metodi in quanto il socket in attesa non invia alcun dato.


Pro e Contro WebRTC:

  • WebRTC permette a due client di connettersi tra loro usufruendo soltanto di API javascript! Generalmente la tecnologia è stata sviluppata per poter inviare dati relativi ad audio e video, ma è molto flessibile e permette di passare comunque dati in modo arbitrario per poter scambiare, in questo caso, messaggi di chat.
  • Connettendosi in Peer To Peer, non c'è un consumo di banda da parte del sito per i messaggi scambiati, di conseguenza i costi per mantenere il servizio sono molto inferiori rispetto ad altre soluzioni, inoltre sfruttando la tecnologia in sè puoi implementare anche le videochiamate senza particolari problemi.
  • Il grosso scoglio di WebRTC è che si tratta di una tecnologia molto recente e, al momento, è supportata da pochi browser (nello specifico: Chrome, Firefox, Opera)



ps: per quanto riguarda la lista dei contatti, etc, basta un qualsiasi linguaggio di scripting server side.
 
  • Java è una tecnologia molto diffusa ma non è richiesto che i tuoi utenti debbano averlo installato nel pc in questo caso in quanto puoi usare javascript sul browser degli utenti per interfacciarti tramite WebSocket al demone java, senza bisogno così di necessitare di alcun client simil IRC.
  • Se decidi di usufruire di java, dovrai connetterti tramite socket al server e, chiaramente, con un crescente numero di utenti l'applicazione tenderà a gravare sempre più a livello prestazionale sull'infrastruttura server (aumentando i costi)
  • Chiaramente è una soluzione che consuma banda, anche se di meno rispetto ad altri metodi in quanto il socket in attesa non invia alcun dato.

Questa notizia è la soluzione al mio problema, grandissimo, mi puoi dare dei link dove utilizzano "Java + JavaScript" per comunicare come dovrei fare io ???

mille grazie!!!
 
Praticamente per usufruire dei websocket bisogna utilizzare delle API specifiche (JSR-356).

Penso che googlando con i dati che ti ho fornito dovresti poter trovare esempi di tutti i tipi, ad ogni modo ho trovato con una rapida ricerca anche diversi framework che semplificano il processo di creazione componenti server e client, uno di questi è Atmosphere che non sembra niente male, soprattutto perchè presenta numerosi esempi di sviluppo, tra cui è annoverata anche una chat.
 
Grandissimo,
da quello che ho capito è proprio quello che volevo.

Ho scaricato lo zip di esempi, ho seguito quello della chat: https://github.com/Atmosphere/atmosphere-samples/tree/master/samples/chat

Ho seguito il TUTORIAL: http://async-io.org/tutorial.html

ma non riesco a configurare la chat per un test, non mi si connette....

1) Non riesco a creare il corretto l'albero delle directory.
2) Non capisco se devo compilare le classi Java con eclipse

Tu cosa puoi consigliarmi per capirci qualcosa ? Il vorrei fare il classico esempio "Hello World", mi accontenterei di questo, poi il resto lo implementerei di conseguenza.
 
Ho trovato un articolo su di un blog che mi sembra abbastanza chiaro come esempio (ovviamente si, il sorgente java va compilato e mandato in esecuzione per i test).

In ogni caso, stesso tramite il progetto su github, ho trovato questo utile documento che ti introduce alla comprensione del broadcaster di atmosphere.

La documentazione insomma c'è e mi sembra anche di buona qualità in fatto di esaustività e semplicità.


In ogni caso, appena trovo del tempo utile proverò a strutturare un applicativo base per un hello world.
 
Sei magnifico,
grazie moltissimo per la tua disponibilità,
io ho sempre sviluppato tutto con PHP e C# usando Dreamweaver e Visual Studio, non conosco eclipse, l'ho aperto 5 volte in tutto e non ho mai capito nulla.

so come si esegue un progetto ma non sono capace di importare tutti quei sorgenti nella posizione giusta ed eseguirli, non riesco a creare un progetto nuovo e importare dentro tutto quel materiale.
 
Ma se Java sul server non è installato o peggio il server web non ha il modulo corrispondente installato come fai?
 
Ma se Java sul server non è installato o peggio il server web non ha il modulo corrispondente installato come fai?

Chiaramente hai bisogno di poter gestire il server da una shell almeno, altrimenti non puoi creare e avviare i servizi necessari.

By the way, ho visto che ci sono diversi progetti su github per rendere i socket di php compatibili con i websocket (questo mi sembra uno dei più semplici da utilizzare) e di conseguenza è possibile implementare anche puramente con php un servizio di questo tipo anche se, chiaramente, in applicativi server molto complessi php non ha tutte le comodità che java invece offre, come la gestione dei thread e delle classi sincronizzate (per dovere di cronaca è giusto però dire che il footprint java caricato con ogni processo è chiaramente più oneroso).
 

Discussioni simili