Connecting to LSports - Portuguese

Modified on Wed, 22 Mar 2023 at 09:52 AM

Ligação rápida com LSports - RabbitMQ

Portanto, começou a implementar os serviços LSports via RMQ, boa escolha! Vamos por a sua conexão a funcionar de uma forma simples e rápida.

Este guia tem o objetivo de dar uma melhor visão de como a equipa de Suporte da equipa LSports para resolver problemas rapidamente e com um esforço mínimo da sua parte.

Instruções passo a passo:
● Primeiro, nós recomendamos usar o nosso SDK (atualmente disponível em C#, PHP ou Node) para uma implementação rápida, pode fazer do download dos ficheiros baseado na sua linguagem de programação favorita a partir daqui
SDK - C#

O exemplo seguinte refere-se às seguintes iniciais:
Username: MyEmail
Password: Passw0rd1234
Package: 102030
(Pode escolher as credenciais que lhe são dadas pela LSports)

Repare: Todos os exemplos estão em C#.
Caso escolha implementar o seu próprio código, irá precisar da biblioteca RMQ aqui.
Por favor tenha em consideração que a LSports atualmente usa a versão 3.6.5.0

  1. Comece por verificar de o seu pacote está ativo enviando uma chamada API como as seguintes:

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

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

Resposta:
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"
  ]
}

Caso o pacote já tenha sido ativado então a mensagem deve conter “Value was already set”. Para qualquer outro estado ou mensagem de erro por favor verifique as suas credenciais ou contacte-nos.

  1. CCrie uma ligação factory do seguinte modo:
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)
};

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

  1. Crie uma ligação do seguinte modo:
IConnection connection = _connectionFactory.CreateConnection();
  1. Crie um modelo do seguinte modo:
IModel model = connection.CreateModel();
  1. Configure a qualidade de serviço:
model.BasicQos(prefetchSize: 0, prefetchCount: 1000, global: false);
  1. Mensagem consume: 
EventingBasicConsumer consumer = new EventingBasicConsumer(model);
consumer.Received += (sender, eventArgs) =>
{
    // Deserialize message
    // Call method to handle deserialized message
};
  1. Começar mensagem consumo:
    (tenha o cuidado de escrever o seu ID do pacote com sublinhados ('_') como descrito) Por exemplo, se o ID do pacote for “102030”
model.BasicConsume(queue: '_102030_', noAck: true, consumer: consumer)
  • A partir daqui já deve ser capaz de criar a sua conexão RMQ e começar a receber mensagens do Batimento cardíaco.

Requisição de uma Imagem Completa
Como as atualizações vindas da RMQ são apenas deltas, antes de começar a consumir mensagens vindas da LSports, pode requisitar uma imagem completa dos dados que deverá receber.
Pode fazê-lo fazendo uma chamada API aos seguintes:

  • Inplay Snapshot - Fornece os dados para todos os eventos que estão atualmente a acontecer.
  • Prematch Get events - Fornece os dados para o(s)evento(s) requisitado(s).

Para uma explicação detalhada da nossa estrutura de dados, pode continuar a ler a nossa documentação.

Possíveis tipos de erros

Aviso: Se a fila chegar a 10000 mensagens não lidas/unacked será automaticamente purgada e o seu pacote será desativado.

A maioria das falhas de conexão ocorrem devido a credenciais incorretas ou pacotes inativos. Abaixo encontram-se os erros e causas mais comuns.

"Connection failed" - Por favor verifique os detalhes de ligação e.g. Ligação factory, anfitrião RMQ, RItualHost foram escritos corretamente
"Access refused"- Por favor verifique se o seu pacote está ativo e que as credenciais de início de sessão e ID do pacote foram escritos corretamente.

Agora tudo o que tem de fazer é, começar a requisitar os nossos dados de desporto de acordo com as suas necessidades. Para a documentação detalhada por favor siga o link abaixo

Se tiver qualquer feedback sobre o nosso documento de conexão ou se precisar de suporte, por favor contacte o nosso contacto de vendas,
LSports

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 atleast one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article