Visualizzazione risultati 1 fino 8 di 8

Discussione: chat php ed indirizzi ip

  1. #1
    musicdate non è connesso Utente giovane
    Data registrazione
    06-01-2012
    Messaggi
    87

    Lightbulb chat php ed indirizzi ip

    salve a tutti,
    sto pensando di dotare il mio sito di una chat e mi sono sorte alcune domande.
    Vorrei realizzare tutto con php in questo modo:
    a. il client A chiama il server altervista (la mia pagina) ed invia un messaggio diretto al client B che viene salvato da qualche parte sul mio spazio altervista
    b. ogni volta che il server si accorge che è arrivato un messaggio per B lo inoltra a B

    per fare questo sono sorti alcuni problemi ed alcune domande:
    1. il php è adatto a fare questo?
    2. mi serve l'ip del mittente: in che modo posso ricavarlo considerando il fatto che potrebbe essere connesso ad una LAN e quindi potrei avere il solo indirizzo ip globale?
    3. per inoltrare il messaggio al destinatario posso usare i comandi php relativi a socket?
    4. nel caso di risposta affermativa alla domanda 3, è bene utilizzare la porta 80 o programmi di questo tipo usano altri tipi di porte? e perchè?

    mi rendo conto che l'argomento è molto vasto e non mi aspetto risposte esaustive: mi basta anche una singola parola da cercare su internet attinente ai vari argomenti

    grazie mille

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    No, PHP non va bene, ma in generale è tutta l'architettura a cui stai pensando che non va bene. Non puoi creare una connessione verso un client perché non ci sarebbe in ascolto nulla. A meno che non ci stia girando un'applicazione che tiene aperto un socket in ascolto.

    Nelle webchat il client (il browser) fa delle richieste periodiche al server per controllare la presenza di aggiornamenti.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    musicdate non è connesso Utente giovane
    Data registrazione
    06-01-2012
    Messaggi
    87

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    No, PHP non va bene, ma in generale è tutta l'architettura a cui stai pensando che non va bene. Non puoi creare una connessione verso un client perché non ci sarebbe in ascolto nulla. A meno che non ci stia girando un'applicazione che tiene aperto un socket in ascolto.

    Nelle webchat il client (il browser) fa delle richieste periodiche al server per controllare la presenza di aggiornamenti.
    tenere aperto un socket sul client equivale a fare richieste periodiche al server?
    oppure lo si può "tenere aperto" in attesa che il server lo contatti?

    vorrei evitare la soluzione di porre un client che fa richieste periodiche per evitare il consumo di banda per richieste che possono rivelarsi inutili (ad esempio se non c'è nessun messaggio aggiorno lo stato ogni secondo senza avere nessuna informazione)

    in alternativa quale linguaggio o architettura potrei usare?

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da musicdate Visualizza messaggio
    tenere aperto un socket sul client equivale a fare richieste periodiche al server?
    Fosse la stessa cosa si chiamerebbe allo stesso modo.

    Citazione Originalmente inviato da musicdate Visualizza messaggio
    in alternativa quale linguaggio o architettura potrei usare?
    I browser non sono pensati per tenere aperte le connessioni per un tempo indefinito, motivo per cui in passato si è sempre usato Java o Flash a questo scopo. In HTML5 c'è un set di API chiamato Websocket che però è ancora abbastanza sperimentale.

    Dall'altra parte ti serve un server dedicato in cui fai girare un'applicazione compilata, un Java o un qualche linguaggio di scripting (Ruby, Python, Perl) che fa da server.

    Però, fossi in te, eviterei di imbarcarmi in una cosa del genere. Molto più semplice è utilizzare una chat PHP che usa il meccanismo di richieste periodiche (ne diamo una anche come tool sul pannello), oppure usi un client Flash per attaccarti ad un canale IRC o qualcosa del genere.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    ciao forse questo fa al caso tuo:
    http://www.mrwebmaster.it/php/artico...uery_1223.html
    Tempo fa l'avevo testato e funziona abbastanza bene, si appoggia ad un db MySQL, quidi le conversazioni passano per il db e fa uso delle sessioni, interrogando in continuazione il db, forse non è una soluzione pulita ma sembra funzionare :D.
    Tempo fa se ne vedevano alcune versioni moficate per joomla. Cya
    Ultima modifica di betcalciosport : 11-03-2013 alle ore 17.19.00

  6. #6
    musicdate non è connesso Utente giovane
    Data registrazione
    06-01-2012
    Messaggi
    87

    Predefinito

    Citazione Originalmente inviato da betcalciosport Visualizza messaggio
    ciao forse questo fa al caso tuo:
    http://www.mrwebmaster.it/php/artico...uery_1223.html
    Tempo fa l'avevo testato e funziona abbastanza bene, si appoggia ad un db MySQL, quidi le conversazioni passano per il db e fa uso delle sessioni, interrogando in continuazione il db, forse non è una soluzione pulita ma sembra funzionare :D.
    Tempo fa se ne vedevano alcune versioni moficate per joomla. Cya
    vi ringrazio per i suggerimenti, anche se mi pare di aver capito che le risorse disponibili non fungono come avrei desiderato (chi determina l'inoltro dei messaggi non è il server ma il client)

    proverò a fare qualche modifica alla chat in php e mysql, creando, se ci riesco, un programma che tiene aperto un socket lato client (la celebre chat di c6 non funzionava così?)
    poichè sono poco esperto di socket (ma mi sto documentando) pongo di nuovo la domanda nr 2 "modificata"
    2. mi serve l'ip del mittente: in che modo posso ricavarlo considerando il fatto che potrebbe essere connesso ad una LAN oppure ad un proxy? con php posso accedere al contenuto dell'IP header?

    grazie per la pazienza

  7. #7
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da musicdate Visualizza messaggio
    2. mi serve l'ip del mittente: in che modo posso ricavarlo considerando il fatto che potrebbe essere connesso ad una LAN oppure ad un proxy? con php posso accedere al contenuto dell'IP header?
    Puoi conoscere quello che con tutta probabilità è l'IP del router dell'utente. Basta guardare in $_SERVER['REMOTE_ADDR']. Da lì in poi dovrebbe esserci una regola del router che inoltra la connessione alla macchina sulla rete locale. È chiaramente impraticabile. Come detto è il client che deve instaurare la connessione.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  8. #8
    musicdate non è connesso Utente giovane
    Data registrazione
    06-01-2012
    Messaggi
    87

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Puoi conoscere quello che con tutta probabilità è l'IP del router dell'utente. Basta guardare in $_SERVER['REMOTE_ADDR']. Da lì in poi dovrebbe esserci una regola del router che inoltra la connessione alla macchina sulla rete locale. È chiaramente impraticabile. Come detto è il client che deve instaurare la connessione.
    ok, peccato

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •