PHP, sockets e hilos (PHPSocketMaster 1.0)

Iniciado por alex171294, 16 Diciembre 2014, 02:08 AM

0 Miembros y 1 Visitante están viendo este tema.

alex171294

Buenas tardes compañeros, amigos, lectores y usuarios, les traigo una buena noticia, hacía casi 3 meses que no lanzaba una versión nueva de PHPSocketMaster y a decir verdad no recuerdo cuando fue la última versión que publiqué.

Ventajas de usar PHPSocketMaster para gestionar mis sockets:

* PHPSocketMaster es actualizada, mejorada y depurada entre varias personas (o esa es la idea) a lo largo del tiempo, por lo que al aparecer nuevas vulnerabilidades, errores y demases en el codigo, el mismo será actualizado. Uno de nuestros mayores objetivos es mantener la compatibilidad entre versiones viejas y nuevas, de modo que no sea necesario cambiar ni una linea de código ante cualquier actualización, con este objetivo creamos interfaces las cuales nos obligan a mantener la compatibilidad entre nuevas y viejas versiones dotando de nuevas caracteristicas y reparaciones sin dejar programas viejos con errores.

* PHPSocketMaster es robusto y mejora día a día, otorga una base confiable para que usted pueda programar tranquilamente sin tener que reparar en detalles que puedan causar una perdida de tiempo importante para poder hacer andar un código. Este ahorro de tiempo acompañado de la seguridad de utilizar una librería probada en muchos contextos, es en general uno de los puntos a favor más importantes.

* PHPSocketMaster le permite establecer un patrón de trabajo y al ser reusable le permite a usted tener códigos similares en varios proyectos, más fáciles de depurar y revisar que si usted programara una clase para gestionar sockets en cada proyecto.

* PHPSocketMaster está orientado a objetos con eventos, dando mayor flexibilidad al código y mejorando notablemente la velocidad de desarrollo en comparación con el obsoleto sistema de sockets estructurado.

* Desarrollé phpsocketmaster como una solución a mi grave problema, cada vez que yo quería desarrollar un código que utilizara sockets, creaba una nueva clase para gestionarlo, de modo que cada código era un mundo diferente y me traía bastante dolores de cabeza, decidí crear una pequeña librería que soportara cualquier proyecto ambicioso que quiciese sin tener que volver a escribir una y otra vez el código de dicha librería.

Cambios de la versión 0.4 a 1.0:

Código (text) [Seleccionar]
ADD: funcion loop_refresh()
ADD: funcion loop_refreshListen()
ADD: Nueva propiedad listenClients
ADD: Pruebas de hilos en el directorio test
ADD: nueva clase HTTPClient
ADD: nueva interface http client.
ADD: nueva clase ThreadSocketMaster, control multihilo y sus constantes
ADD: nuevos eventos onSendRequest y onSendComplete
ADD: nuevas propiedades Domain, Protocol, ConnectionType, Type, State
FIX: ejemplos para los nuevos cambios.
FIX: las funciones connect, disconnect, listen ahora retornan verdadero o una excepción
ADD: agregado soporte nativo para programar sobre phpSocketMaster sin necesidad de eventos


Resumen

PHPSocketMaster es un grupo de clases para manejar los sockets nativos de php como objetos, e incluye eventos, si no te gustan los eventos se agrego un soporte para poder manejarlo solo como objetos, entre las prestaciones de la librería podemos notar control nativo de websockets (que incluye el protocolo necesario para hacer funcionar websockets internamente), multihilos si está disponible php con multihilos, y una pequeña clase para hacer un cliente http parecido a Curl (o ese es el objetivo futuro aunque está verde).

PHPSocketMaster cuenta con una wiki completamente en español aquí y una wiki en inglés parcialmente traducida (estamos en busca de nuevos traductores).

Puedes ver el repositorio oficial aquí, puedes descargar la versión 1.0 (o última versión estable en caso de que veas esta publicación dentro de un tiempo) aquí, y puedes ver la rama de desarrollo para ver los últimos cambios aquí.


Un saludo! Sugerencias, ideas, comentarios son bienvenidos siempre que no sean mala onda.

EFEX

Me gusta me gusta y los ejemplos lo deja bien en claro.
GITHUB