Connecting to LSports - Spanish

Conexión rápida con LSports - RabbitMQ

Entonces, ha decidido implementar los servicios LSports de a través de RMQ, ¡Buena elección! Hagamos ejecutar su conexión con unos simples pasos.

• En primer lugar, recomendamos ampliamente usar nuestro SDK (disponible actualmente en C# o PHP) para una rápida ejecución, puede descargar los archivos según su idioma de preferencia desde: SDK - C#

El siguiente ejemplo hace referencia a estas credenciales Username: MyEmail Password: Passw0rd1234 Package: 102030 (Debe usar las credenciales que le fueron otorgadas por LSports)

Nota: Todos los ejemplos a continuación están escritos en C#. Si desea implementar su propio código, necesitará buscar la biblioteca de RMQ aquí. Por favor tome en cuenta que LSports usa actualmente la versión 3.6.5.0

  1. Comience asegurándose de que su paquete esté habilitado enviando una llamada API de la siguiente manera:

Paquete InPlay: https://inplay.lsports.eu/api/Package/EnablePackage?username=MyEmail&password=Passw0rd1234&packageid=102030

Paquete Prematch: https://prematch.lsports.eu/OddService/EnablePackage?username=MyEmail&password=Passw0rd1234&guid=guid-provided-by-LSports

Respuesta: XML Schema:

<xs:schema>
  <xs:element name="Message">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Header">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:short" name="HttpStatusCode"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Body">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:string" name="Message"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

JSON Schema:

{
  "type": "object",
  "properties": {
    "Header": {
      "type": "object",
      "properties": {
        "HttpStatusCode": {
          "type": "integer"
        }
      },
      "required": [
        "HttpStatusCode"
      ]
    },
    "Body": {
      "type": "object",
      "properties": {
        "Message": {
          "type": "string"
        }
      },
      "required": [
        "Message"
      ]
    }
  },
  "required": [
    "Header",
    "Body"
  ]
}

Si el paquete ya estaba habilitado, el mensaje debería contener "Value was already set". En caso de cualquier otro estado o mensaje de error, por favor compruebe sus credenciales o contáctenos.

  1. Cree una fábrica de conexiones de la siguiente manera:

ConnectionFactory connectionFactory = new ConnectionFactory
{
    HostName = "Described below",
    Port = 5672,
    UserName = "MyEmail",
    Password = "Passw0rd1234",
    AutomaticRecoveryEnabled = true,
    VirtualHost = "Customers", //Default value
    RequestedHeartbeat = 580,
    NetworkRecoveryInterval = TimeSpan.FromSeconds(1)
};

HostName de RMQ: InPlay: inplay-rmq.lsports.eu PreMatch: prematch-rmq.lsports.eu

  1. Cree una conexión de la siguiente manera:

IConnection connection = _connectionFactory.CreateConnection();
  1. Cree un modelo de la siguiente manera:

IModel model = connection.CreateModel();
  1. Configure la calidad del servicio:

model.BasicQos(prefetchSize: 0, prefetchCount: 1000, global: false);
  1. Consumir mensaje:

EventingBasicConsumer consumer = new EventingBasicConsumer(model);
consumer.Received += (sender, eventArgs) =>
{
    // Deserialize message
    // Call method to handle deserialized message
};
  1. Empiece el consumo de mensajes: (asegúrese de escribir su paquete ID usando guiones bajos ('_') como se describe) Por ejemplo, Si el paquete ID fuera “102030”

model.BasicConsume(queue: '_102030_', noAck: true, consumer: consumer)
  • En este punto, debería poder activar su conexión RMQ y comenzar a recibir mensajes Heartbeat.

Solicitud Completa de Instantáneas

Como las actualizaciones que le llegan a través de RMQ son solo deltas, antes de comenzar a consumir mensajes provenientes de LSports, debe solicitar una instantánea de los datos que debería recibir. Puede hacerlo haciendo una llamada API a lo siguiente:

  • Inplay Snapshot - Provee los datos de todos los eventos que están inplay.

  • Prematch Get events - Proporciona datos para el evento(s) solicitado(s).

Tipos de posibles errores

Nota: Si la cola llega a 10000 mensajes no leídos / no contestados se limpiará automáticamente y su paquete será deshabilitado.

La mayoría de los intentos fallidos de conexión se producen debido a credenciales incorrectas o paquetes inactivos. A continuación se encuentran los errores y causas más comunes:

"Conexión fallida" - Compruebe que los datos de conexión, es decir, fábrica de conexión, host de RMQ, VirtualHost, se escribieron correctamente. Compruebe que su paquete esté habilitado y que las credenciales de inicio de sesión y la ID del paquete hayan sido escritas correctamente.

Para una explicación detallada de nuestra estructura de datos, puede continuar leyendo nuestra documentación.

Last updated