Necesito hacer un chat en php, que envíe cadenas de texto entre los usuarios conectados... Estuve leyendo sobre consultas anteriores relacionadas al tema; pero no me queda claro lo siguente:El servidor de chat tiene que hacer lo siguiente:
Cita:
La aplicación cliente; tiene que hacer lo siguiente:
1° Crear el socket
- socket_create()
2° Vincularle una IP y un puerto (bind)
- socket_bind()
3° Dejar que este socket escuche las conexiones (listen)
- socket_listen()
4° Aceptar las conexiones escuchadas (accept)
- socket_accept()
5° Escribir y Leer Informacion (read & write)
- socket_read()
- socket_write()
6° Cerrar las conecciones (socket close)
- socket_close()
Cita:
Ahora bien; si lo citado arriba es correcto y no me saltíe ningun paso... ¿Como organizar esto en php?
1° Crear el socket
- socket_create()
2° Vincularle una IP y un puerto (bind)
- socket_bind()
3° Conectar al socket (connect)
- socket_connect()
4° Tener un bucle infinito en el que se envie y reciba la info (read & write)
- socket_read()
- socket_write()
5° Cerrar las conexiones (close socket)
- socket_close()
Redacto un archivo server_chat.php que se ocupe de ralizar las tareas del servidor; y en la parte del chat (La parte gráfica) coloco el script del cliente?
Funciona esto así como una aplicacion cliente/servidor (?) Ej:
APLICACIÓN CLIENTE/SERVIDOR EN PYTHON
Cita:
Código:
Cliente: #!/usr/bin/env python import socket clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clientsocket.connect(('localhost',8000)) while 1: data = raw_input('>') clientsocket.send(data) if not data: break newdata = clientsocket.recv(1024) print newdata clientsocket.close() ----------------------------------------------------------------------------------------- Servidor: #!/usr/bin/env python import socket serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serversocket.bind(('localhost', 8000)) serversocket.listen(1) clientsocket, clientaddress = serversocket.accept() print 'Conexion desde: ', clientaddress while 1: data = clientsocket.recv(1024) if not data: break clientsocket.send(data) clientsocket.close()