# Korean

#### LSports를 이용한 빠른 연결- RabbitMQ <a href="#lsports-rabbitmq" id="lsports-rabbitmq"></a>

RMQ를 통하여LSports서비스를 시행하신 것은 아주 현명한 선택입니다!\
몇 가지 간단한 절차를 통하여 연결을 시작할 수 있습니다.

본 설명서는, 여러분의 큰 노력 없이, 어떻게 하면 LSports의 지원팀을 통해 적절하게 문제를 해결하는지를 알려드립니다.

**단계별 지시사항:**\
• W첫째 빠른 시행을 위하여, 본사의SDK (C#또는PHP에서 현제 사용가능)의 활용을 권고합니다, 선호하는 프로그래밍 언어에 맞는 파일을 여기서 내려받으실수 있습니다:\
[SDK - C#](https://lsportseu-my.sharepoint.com/personal/stas_m_lsports_eu/_layouts/15/guestaccess.aspx?docid=0bd80e807559e4543b520bd0fe7f25b46\&authkey=AerSWTRZ2TMn2HyT3r9NEgE\&e=x0V82l)

다음은 계정정보 예시입니다:\
**Username: MyEmail**\
**Password: Passw0rd1234**\
**Package: 102030**\
**Guide: guid-provided-by-LSports**\
(LSports가 발급한 계정정보를 활용하여야 합니다)

`비고:다음은c#를 이용한 사례들 입니다.`\
S시행할 코드는 본인이 직접 선택하십시요. RMQ라이브러리를 여기서 받으셔야 합니다.\
현제LSports는3.6.5.0버전을 사용합니다

1. 다음과 같이API호출을 통하여 패키지의 활성화 여부를 확인하는 것으로 시작합니다:

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

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

**Response:**\
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"
  ]
}
```

만일 패키지가 이미 활성화 되어있다면,“Value was already set”이 메시지에 포함됩니다. 다른 그 어떤 상태나 오류 메시지에 대하여는 계정정보를 재 확인하거나 저희에게 연락 주십시요.

2. 다음과 같이 ConnectionFactory를 할당합니다:

```
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**

3. 다음과 같이 연결합니다:

```
IConnection connection = _connectionFactory.CreateConnection();
```

1. 다음과 같이 모형을 만듭니다:

```
IModel model = connection.CreateModel();
```

1. 서비스 품질을 설정합니다:

   ```
   model.BasicQos(prefetchSize: 0, prefetchCount: 1000, global: false);
   ```
2. 메시지를 소모합니다:

   ```
   EventingBasicConsumer consumer = new EventingBasicConsumer(model);
   consumer.Received += (sender, eventArgs) =>
   {
       // Deserialize message
       // Call method to handle deserialized message
   };
   ```
3. 메시지 소모를 시작합니다:\
   (앞서 설명하였듯이 (‘\_’)을 포함하여 패키지ID를)\
   예를들어,만일 패키지ID가 “102030” 이라면

   ```
   model.BasicConsume(queue: '_102030_', noAck: true, consumer: consumer)
   ```

* 이제부터RMQ연결 결과를 볼 수 있으며, 하트비트 메시지를 받을 수 있습니다.

**전체 스냅 샷 요청**\
RMQ를 통한 업데이트 내용은 오직 변동 사항뿐이므로, LSports에서 부터 받을 메시지를 소모하기전에 받을 데이타의 전체 스냅 샷을 요청할것을 권고합니다.\
API호출을 통하여 해당되는 요청을 할수있습니다:

* Inplay Snapshot - Provides data for all events that are currently inplay.
* Prematch Get events - Provides data for requested event(s).

데이타-구성에 대한 더 상세한 설명을 보시려면,계속하여 설명서를 판독하십시요.

#### 발생할 수 있는 오류 유형

**비고:만일 대기중인 읽지 않거나/미인정된 메시지가10,000에 이르면,메시지가 자동적으로 제거되고 패키지가 비활성화 됩니다.**

대부분의 연결 시도 실패는 부정확한 신임장 또는 비활성화 된 패키지 문제입니다.다음은 가장 흔한\
오류와 원인들입니다:

**“연결 실패”** - Connection Factory, RMQ호스트, 가상호스트와 같은 연동 세부사항 등이 정확히 확인 하십시요.\
\&#xNAN;**“접촉 거부”** - 패키지가 활성화 되어 있는지 확인하시고 로그인 신임장과 패키지ID가 정확히 입력되었는지 확인 하십시요.

**자 이제부터,구체적으로 필요한 스포츠 데이타를 주문 하시는것만 남았습니다. 다음 링크를 따라 더 자세한 개발 문서를 읽을 수 있습니다.**

**당사의 연결 설명서에 대한 피드백 제공이나 또는 지원이 필요하신 분은,해당 영업 판매자에게 연락 주십시요.**
