Connecting to LSports - Spanish

Modified on Wed, 22 Mar, 2023 at 9:54 AM

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.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article