PHP Socket Server para múltiples clientes [duplicado]

Esta pregunta ya tiene respuestas aquí :
Respuesta 1

Debe ejecutar su servidor de socket como un servicio desde la línea de comandos. Esto es parte de lo que he usado antes. Cierra el socket después de una lectura, pero se puede modificar fácilmente para mantener una variedad de conexiones.

  • Tendría que construir algún tipo de perro guardián para ver si una conexión sigue viva.
  • Necesita un mecanismo de identificación para identificar diferentes conexiones.

El código:

set_time_limit( 0 );
// Set the ip and port we will listen on
$address = '127.0.0.1';
$port = 6789;

// Create a TCP Stream socket
$sock = socket_create( AF_INET, SOCK_STREAM, 0 ); // 0 for  SQL_TCP
// Bind the socket to an address/port
socket_bind( $sock, 0, $port ) or die( 'Could not bind to address' );  //0 for localhost
// Start listening for connections
socket_listen( $sock );

//loop and listen
while (true) {
  /* Accept incoming  requests and handle them as child processes */
  $client = socket_accept( $sock );
  // Read the input  from the client – 1024000 bytes
  $input = socket_read( $client, 1024000 );

  // from here you need to do your database stuff
  // and handle the response 

   // Display output  back to client
  socket_write( $client, $response );
  socket_close( $client );
}
// Close the master sockets
socket_close( $sock );
Respuesta: 2

Hay un servidor WebSocket y una biblioteca de cliente para PHP en el código de Google. Es compatible con clientes flash. No estoy seguro si resuelve su problema.

Si quieres un tutorial básico aquí está el enlace para aprender

Cómo crear un servidor de socket en php

EDITAR: - después de mirar su comentario (ejecutar un servidor de socket continuamente como un servicio)

Aquí está el enlace que describe la forma de crear un servidor de socket y ejecutarlo como un proceso

Cree un servidor de socket en php y ejecútelo como servicio

Respuesta: 3

Estoy tratando de crear una clase GSON pero no estoy seguro de cómo manejar este caso. De acuerdo con las especificaciones de la API, las opciones pueden ser valores de lista: ["uno", "dos"] O puede ser una lista de pares {"valor": "Etiqueta"} ...

Hice algo en mi proyecto y todos los poli se vuelven transparentes. Descargué mi viejo git, todo estaba bien, pero todavía era transparente. Evento de marca: en el renderizado, todos los dibujos polivinílicos rinden público (...

Tengo un escenario en el que tengo las mismas columnas de tabla pero con diferentes nombres como TicketBooking y TicketBookingHistory. Tengo una sola clase de pojo TicketBooking. ¿Es posible proporcionar más ...

No encontré ninguna respuesta a mi problema en el archivo. Tengo problemas para configurar una secuencia de números 5x5 en mi jtextfield. Este es mi código privado void btnperformAction (java.awt.event.ActionEvent ...