Visualizzazione dei risultati da 1 a 4 su 4

Discussione: WebSocket Chat

  1. #1

    WebSocket Chat

    Ciao a tutti,
    vi scrivo perché sono abbastanza indeciso nella scelta del protocollo per una chat da implementare nel mio sito. Per prima cosa vi dico che non voglio usare servizi esterni, ma vorrei cercare di scriverla io. Avevo pensato a xmpp ma per il tipo di applicazione che sto creando avrei dovuto modificare anche il server. Non voglio annoiarvi troppo con la spiegazione, vi dico solo quello di cui avrei bisogno.
    Prima di tutto ho bisogno di mantenere un "archivio" dei vecchi messaggi.
    Come seconda cosa ho bisogno di una chat istantanea, non una cosa tipo php-mysql che per ricevere i nuovi messaggi ci sia bisogno di ricaricare la pagina.
    Ho scritto nella sezione javascript perché avevo pensato di ovviare in questo modo al problema:
    Un database contiene tutti i messaggi e al momento di caricare la pagina vengono scaricati ad esempio gli ultimi 50. Da quel momento si "attiva" il protocollo websocket e tutti i messaggi ricevuti mentre l'utente è online vengono sia inseriti nel database (per poterli recuperare dopo) sia inviati al browser che li mostra istantaneamente.
    Ora il mio problema è questo: ho un server websocket in php che gestisce più persone collegate contemporaneamente, ma come faccio a sapere che quella persona è l'utente Pinco Pallino ad esempio? ci vuole un'autenticazione, ma visto che i websocket inviano tutti in chiaro (non uso ssl perché non saprei come implementarlo nel server) vorrei evitare di inviare username e password così.
    Mi serve il vostro aiuto per capire come risolvere questo problema (o se avete idee migliori proponetele che le discutiamo).
    Spero di essere stato chiaro..
    Grazie mille in anticipo
    http://www.youtube.com/user/alekosfilini @afilini

  2. #2
    Buttando li il primo pensiero che mi viene potesti provare ad inviare sorta un'intestazione nel messaggio
    una cosa del genere:
    ;ID UTENTE-HASH DI LOGIN EFFETTUATO;Testo del messaggio
    un esempio applicato:
    ;213455643-5f423b7772a80f77438407c8b78ff305;Ciao a tutti Come va?

    Con PHP controlli che l'hash (generato per esempio facendo l'unione della password+id utente+il secondo di login, e ne fai un'hash md5) sia corretto per l'id utilizzato (un po' di espressioni regolari e la funzione explode() dovrebbero bastare), e se è giusto inserisci il messaggio nel db.

    Ripeto ci ho ragionato 10 secondi, quindi non prenderlo così com'è ti lascio un po' di lavoro così

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    Prima di tutto ho bisogno di mantenere un "archivio" dei vecchi messaggi.
    Immagina la grandezza del archivio fra un anno dei messaggi scambiati di 100 o più utenti. Da paura.
    A che ti serve l'archivio se posso chiedere?

    Tempo fa ne avevo uno sotto mano, ovviamente standalone (2007 mi pare); se vuoi cerco in qualche modo di reperirlo e te la invio via mail. Fa sapere.
    Ultima modifica di Nobody33; 10-12-2013 a 21:35
    Per una bella risata vai QUI

  4. #4
    mi serve l'archivio perchè per adesso rimarrebbe solo l'interfaccia web, ma più avanti mi piacerebbe fare anche della applicazioni per android e ios, quindi se vuoi andare a prenderti un messaggio di qualche anno fa devi per forza avere un archivio.
    comunque l'idea dell'hash non mi sembra male. Io avevo pensato a una cosa tipo a un hash che viene scaricato insieme alla pagina e poi usato per tutta la sessione. Quando viene scaricato, rimane etichettato come "in uso" e viene associato ad esempio all'ip o comunque al computer. Altri client anche loggati con lo stesso account hanno comunque un hash ma separato. Se qualcuno volesse intercettare i messaggi e riuscisse anche a trovare l'hash sarebbe inutilizzabile perché collegato all'ip.. poi ovviamente non è una cosa infallibile, "l'hacker" potrebbe anche essere collegato alla stessa rete, ma a questo punto penso che il fatto che leggano i messaggi sia un problema secondario
    http://www.youtube.com/user/alekosfilini @afilini

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 © 2024 vBulletin Solutions, Inc. All rights reserved.