Domanda

Ho un sito membri, che mi piacerebbe aggiungere chat per (LAMP su un box dedicato). Non ha bisogno di essere troppo complesso, ma deve utilizzare i nomi utente dei membri già registrati in per la chat.

Questo è un po 'di un progetto parallelo per me, quindi preferisco non scrivere da zero, se possibile, e uno script o di classe esistente sarebbe l'ideale. Ho fatto un po 'di ricerca e non ci sembra essere un propensione JSON / Ajax, ma non riesco a trovare nulla di definitivo.

Qualche consiglio / puntatori?

È stato utile?

Soluzione

Qui ci sono due progetti che potrebbero aiutarvi a uscire (sia AJAX / JSON based):

  • jQuery Ajax Chat plug - un semplice, leggero Plugin per jQuery . Nessuna delle campane o fischi, ma ottiene il lavoro fatto.

  • Ajax IM - una web app in piena regola che cerca di emulare tutte le funzioni che ci si aspetterebbe in un client desktop IM. Piuttosto pesante dimensione di download (324KB compresso).

Attualmente sto usando il primo per un sistema IM di base su uno dei miei progetti. Sono stato in grado di attuarlo utilizzando le credenziali di sistema di ogni utente (dato che sono già connessi al sistema - invece di lasciarli scegliere il proprio nickname). L'esempio include il codice sorgente PHP per lo script che viene interrogato dal AJAX. E le grandi opere.

Altri suggerimenti

Ci sono tre approcci comunemente adottati nella costruzione di un sistema di chat web-based.

  1. soluzione applet Java - sia trovare o costruire un applet Java che comunica con un server di chat. L'applet può essere un client IRC, o un client di chat su misura con un server personalizzato. Ho anche visto alcuni siti web utilizzano un applet Java come una comunicazione front-end, in cui l'interfaccia è tutto gestito da JavaScript e HTML nel browser, ma il Javascript invia e accetta gli eventi da l'applet di eseguire la chat.

  2. AJAX Post / sondaggio -. Ogni volta che un uso scrive un messaggio, inviare il messaggio al server HTTP, in cui tutti gli utenti connessi sono periodicamente il polling per i nuovi messaggi

  3. Comet - Utilizzando principalmente Javascript, ogni client stabilisce una connessione a lungo termine a un server HTTP, e gira a vuoto. Quando un messaggio viene inviato da parte dell'utente, è di inviare attraverso la connessione già pre-esistente. E invece di polling per loro, i nuovi messaggi da altri utenti appena scendono la stessa connessione.

Personalmente, trovo la terza opzione per essere il più emozionante, ma il più complesso pure. Si avrà probabilmente bisogno di costruire la propria versione di un server HTTP per supportare la connessione longeva che Comet richiede. E dal momento che c'è un limite a 16 bit sui descrittori di prese in TCP / IP, sarete limitati a circa 64K prese, per IP, sul server. (Ricordate, ogni cliente avrà bisogno di un socket aperto!) Infine, le tecniche per la costruzione di Comet codice lato client sono molto diversi tra i browser. Esistono alcuni quadri per questo, ma dovrete mantenere loro, mentre i nuovi browser escono.

Se si sta eseguendo un piccolo sito, e si vuole affrontare una sfida insormontabile, poi basta andare con AJAX polling. E 'divertente, non è troppo difficile, e imparerete molto. Se non può essere disturbato, quindi solo trovare un applet Java. Una volta che è configurato con un server di corrispondenza, non dovrete mai preoccuparvi di mantenere, dato che la soluzione è molto client-agnostico. Naturalmente, è necessario che il Java Runtime Environment è installato sul client, e che non sta andando sempre essere vero ...

Con AJAX per inviare messaggi di chat al server e di carico modifiche alla finestra di chat periodicamente (prototipo ha una bella funzione per fare questo che controllerà il server per dati aggiornati (updater ajax periodico)). Sotto le vostre specifiche di "non quel complesso" questo è più o meno le ossa nude.

Oh sì, e se si desidera che i messaggi di chat per essere salvati in un database, fare che si proteggersi da iniezioni SQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top