Portal de Socket.IO

Bienvenido al portal de Socket.IO. Aquí encontrarás instrucciones sobre cómo manejar los sockets en nuestra aplicación.

Ejemplos de envío de mensajes

Petición POST con JavaScript


fetch('https://tu-servidor.com/enviar-mensaje', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        canal: 'any_channel',
        token: 'any_token',
        evento: 'new_order',
        mensaje: {
            id: '12345',
            producto: 'Ejemplo',
            cantidad: 1
        }
    }),
})
.then(response => response.json())
.then(data => console.log('Respuesta:', data))
.catch((error) => console.error('Error:', error));
            

Petición POST con PHP (file_get_contents)


<?php
$url = 'https://tu-servidor.com/enviar-mensaje';
$data = array(
    'canal' => 'any_channel',
    'token' => 'any_token',
    'evento' => 'new_order',
    'mensaje' => array(
        'id' => '12345',
        'producto' => 'Ejemplo',
        'cantidad' => 1
    )
);

$options = array(
    'http' => array(
        'header'  => "Content-type: application/json\r\n",
        'method'  => 'POST',
        'content' => json_encode($data)
    )
);

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

if ($result === FALSE) {
    echo "Error al enviar el mensaje";
} else {
    var_dump($result);
}
?>
            

Petición POST con PHP (cURL)


<?php
$url = 'https://tu-servidor.com/enviar-mensaje';
$data = array(
    'canal' => 'any_channel',
    'token' => 'any_token',
    'evento' => 'new_order',
    'mensaje' => array(
        'id' => '12345',
        'producto' => 'Ejemplo',
        'cantidad' => 1
    )
);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json'
));

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error cURL: ' . curl_error($ch);
} else {
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    echo "Código de respuesta HTTP: " . $httpCode . "\n";
    echo "Respuesta: " . $response;
}

curl_close($ch);
?>
            

Ejemplos de escucha de eventos

Escuchar eventos con JavaScript


const socket = io('https://tu-servidor.com');

socket.emit('unirseCanal', { 
    canal: 'any_channel', 
    token: 'any_token' 
});

socket.onAny((eventName, ...args) => {
    console.log(`Evento recibido: ${eventName}`);
    console.log('Datos:', args);
});

socket.on('new_order', (data) => {
    console.log('Nueva orden recibida:', data);
});

socket.on('update_order', (data) => {
    console.log('Actualización de orden:', data);
});
            

Escuchar eventos con Flutter


import 'package:socket_io_client/socket_io_client.dart' as IO;

void main() {
  // Configurar la conexión Socket.IO
  IO.Socket socket = IO.io('https://tu-servidor.com', <String, dynamic>{
    'transports': ['websocket'],
    'autoConnect': false,
  });

  // Conectar al servidor
  socket.connect();

  // Unirse a un canal
  socket.emit('unirseCanal', {
    'canal': 'any_channel',
    'token': 'any_token'
  });

  // Escuchar todos los eventos
  socket.onAny((event, data) {
    print('Evento recibido: $event');
    print('Datos: $data');
  });

  // Escuchar eventos específicos
  socket.on('new_order', (data) {
    print('Nueva orden recibida: $data');
  });

  socket.on('update_order', (data) {
    print('Actualización de orden: $data');
  });

  // Manejar errores de conexión
  socket.onError((error) {
    print('Error de conexión: $error');
  });

  // Manejar desconexión
  socket.onDisconnect((_) {
    print('Desconectado del servidor');
  });
}
            

Recuerda reemplazar 'https://tu-servidor.com' con la URL específica de tu aplicación.