[gl-como] Chat system

Mpuppeteer mpuppetier@gmail.com
Ven 17 Apr 2015 11:56:50 CEST


Grazie a tutti ho risolto con 3 query.

-- SELEZIONO TUTTI GLI ULTIMI MESSAGGI DI TUTTE LE CONVERSAZIONI DI UN
UTENTE
-- LISTA MESSAGGI COME FACEBOOK...
SELECT *
FROM chat
WHERE ( (id_user = 1) OR (id_user_to = 1) )
AND created_at in (
        SELECT MAX(created_at)
        FROM chat
        WHERE id_chatconv in (
                SELECT id_chatconv
                FROM userchat WHERE id_user = 1
        )
        GROUP BY id_chatconv
)
ORDER BY (created_at) DESC;

-- TUTTE LE CONVERSAZIONI FRA ME ED UN ALTRO UTENTE
-- CHAT PRIVATA COME FACEBOOK
SELECT *
FROM chat
WHERE (id_user = 1 AND id_user_to = 2)
        OR
      (id_user = 2 AND id_user_to = 1)
ORDER BY (created_at) ASC;

-- TUTTI GLI UTENTI CON CUI HO PARLATO
SELECT id_user_to as ids
FROM chat
WHERE id_user = 1
        UNION
SELECT id_user as ids
FROM chat
WHERE id_user_to = 1
GROUP BY ids;

> Cosa significa chat multiple private tra 2 individui ?
*Pietro Bertera* vedo di spiegarmi meglio , effettivamente multiple private
tra 2 individui non ha senso :-).

Ogni utente può vedere solo i messaggi che ha spedito o ricevuto da
un'utente
Quindi se Pippo scrive a Topolino
e Topolino scrive a Pluto

Pippo vede solo il messaggio inviato che ha inviato a Topolino e
Topolino vede il messaggio che ha inviato a Pluto e il messaggio che ha
ricevuto da Pippo
Pluto vede il messaggio che ricevuto da Topolino.

Che poi è quello che succede su Facebook o gmail , quando scrivi invii un
messaggio a qualcuno.

> Si tratta di un esercizio didattico o qualcosa di "reale" ? perché
> fuori ci sono una marea di strumenti già fatti..
Purtroppo non è un esercizio.
Ho visto in giro ed ho preso spunto un po' qua e la , perché oltre a quello
che ho scritto sopra "i pazzi" che mi hanno commissionato il lavoro ( la
chat è solo un piccolo pezzo del lavoro) hanno deciso ( vai a capire
perché) che
1) I messaggi funzionano cosi: io invio il messaggio e non posso inviartene
un'altro fino a quando tu non mi rispondi e così via.
2) Tutti i messaggi devo essere salvati su db
3) Ogni messaggio non può essere più di 160 caratteri


*Gianni Carabelli*
> Questo è in rails, che linguaggio usi lato server?
Uso Symfony , quindi PHP

>Cmq lo schema lo puoi rubare ugualmente.
Figo hanno fatto più o meno come avevo fatto io.

> 1- roba senza db. Over xmpp o comet server:
Niente xmpp o roba esterna... il perché non è dato saperlo.... voglio che
tutto passi da loro e che sia salvato su db

*Elena*
> infatti, che cos'ha di male xmpp, che già c'è e ci han lavorato in tanti?
>
> e sì, se vuoi spiare le chat in questione puoi salvare i log sul server
Fosse per me avrei scelto anche io xmpp... e per spiare ... personalmente a
me non interessa...


Ancora grazie a tutti.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/gl-como/attachments/20150417/f731c40d/attachment-0001.html>


Maggiori informazioni sulla lista gl-como