View Full Version : [VB] Chat
Kesslers
09-03-2010, 10:33
Ciao a tutti,
ho scritto un programmino di chat in VB, composto da un client e da un server. Per ora solo due utenti per volta possono comunicare tra loro. Volevo ora ampliarlo un po' e renderlo capace di gestire più utenti contemporaneamente ed in modo che tutti vedano tutti (come di fatto accade con msn).
Ehm..avete qualche idea? Io non riesco a trovare una soluzione decente.
Quando poi funzionerà, lo tradurrò in c++..
Grazie!!
Buona giornata.
bobbytre
09-03-2010, 14:35
secondo me
potresti fare in modo che tutti i client si colleghino allo stesso server, tutti i messaggi che ogni client invia al server vengono inseriti in un unico database , nello stesso ordine in cui arrivano.
poi ogni client ogni tot secondi , invia la richiesta al server di visualizzare tutti i messaggi presenti del db dall'ultima ricezione in poi.
nuovoUtente86
09-03-2010, 14:39
Presumo tu voglia gestire sia le stenze pubbliche che i PM fra utenti. In definitiva si tratta di gestire una mappa di utenti e i relativi socket associati alle conversazioni.
nuovoUtente86
09-03-2010, 14:41
secondo me
potresti fare in modo che tutti i client si colleghino allo stesso server, tutti i messaggi che ogni client invia al server vengono inseriti in un unico database , nello stesso ordine in cui arrivano.
poi ogni client ogni tot secondi , invia la richiesta al server di visualizzare tutti i messaggi presenti del db dall'ultima ricezione in poi.
molto meglio utilizzare un push multicast rispetto al gestire il polling.
Kesslers
09-03-2010, 18:04
Ok...chiedo venia...il push multicasting..come lo realizzo?
Grassie!
nuovoUtente86
09-03-2010, 20:52
per quanto riguarda le stanze pubbliche, crei un subject presso cui si registrano gli utenti afferenti alla stanza. I messaggi, eventualmente accodati, vengono pushati al gruppo di utenti che li visualizzano sul proprio client.
Ovviamente per i messaggi privati, il rapporto passa da 1(server) a molti (gli utenti) ad 1-1.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.